cache = false; $tpl->cache_lifetime = 3600; $tpl->cache_dir = LENCRIER_ROOT . '/cache/templates'; $tpl->compile_dir = LENCRIER_ROOT . '/cache/templates_c'; $tpl->template_dir = LENCRIER_ROOT . '/templates'; $tpl->compile_check = LENCRIER_ENV_PRODUCTION ? false : true; $tpl->reserved_template_varname = 'smarty'; $popup = false; $tpl->assign_by_ref('popup', $popup); $protocol = !empty($_SERVER['HTTPS']) ? 'https' : 'http'; $tpl->assign('journal_admin_url', $protocol . '://' . LENCRIER_ADMIN_HOST . '/ecrire/'); $tpl->assign('admin_url', $protocol . '://' . LENCRIER_ADMIN_HOST . '/ecrire/'); function tpl_modifier_custom_date($timestamp, $format='d/m/Y H:i') { return utils::frenchDateFormat($format, $timestamp); } function tpl_function_html_timezone_select($params) { if (empty($params['name'])) $params['name'] = 'timezone'; if (empty($params['selected'])) $params['selected'] = LENCRIER_DEFAULT_TIMEZONE; $out = ''; return $out; } function tpl_function_plural($params, &$tpl) { if ($params['count'] == 0) { if (isset($params['none'])) return $params['none']; else return $params['singular']; } elseif ($params['count'] == 1) { return sprintf($params['singular'], $params['count']); } else { return sprintf($params['plural'], $params['count']); } } function tpl_modifier_journal_url($id) { return utils::getJournalURL($id); } function tpl_modifier_thumb_url($path, $journal) { return utils::getThumbURL($journal, $path); } function tpl_modifier_journal_document_url($doc, $journal) { return utils::getJournalDatasURL($journal, 'documents') . $doc; } function tpl_modifier_get_post_value($key) { if (isset($_POST[$key])) return $_POST[$key]; else return ''; } function tpl_modifier_dateheure($ts) { return date('d/m/Y à H:i', $ts); } function tpl_modifier_formatter($texte, $journal) { loadLib('rendu_modifiers'); Rendu_Modifiers::$journal = $journal; return Rendu_Modifiers::formatter_texte($texte); } function tpl_modifier_formatter_minimal($texte) { loadLib('rendu_modifiers'); $texte = Rendu_Modifiers::reconnaitre_urls($texte); return Rendu_Modifiers::formatter_texte_minimal($texte); } function tpl_modifier_typo_fr($texte) { loadLib('rendu_modifiers'); return Rendu_Modifiers::typo_fr($texte, false); } function tpl_hl_query($str, $query) { $str = strip_tags($str); $str = preg_replace('![\r\n]!', '', $str); $pos = strpos($str, $query); $query_length = strlen($query); $str_length = strlen($str); $begin = $pos - 200; $length = $query_length + 260; if ($begin < 0) $begin = 0; if (($length + $begin) > $str_length) $length = $str_length - $pos; $str = substr($str, $begin, $length); $str = preg_replace('!^[^\s]*\s|\s[^\s]*$!', '', $str); $str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8', false); $str = str_replace($query, '' . htmlspecialchars($query, ENT_QUOTES, 'UTF-8') . '', $str); return $str; } function tpl_form_field($params) { $name = $params['name']; if (isset($_POST[$name])) $value = $_POST[$name]; elseif (isset($params['data']) && isset($params['data'][$name])) $value = $params['data'][$name]; elseif (isset($params['default'])) $value = $params['default']; else $value = ''; if (isset($params['checked'])) { if ($value == $params['checked']) return ' checked="checked" '; return ''; } return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', false); } function tpl_csrf_field($params) { $name = utils::CSRF_field_name($params['key']); $value = utils::CSRF_create($params['key']); return ''; } function tpl_function_html_date_select($params, &$tpl) { if (empty($params['name'])) $params['name'] = 'date'; $name =& $params['name']; if (!empty($_POST[$name])) { $params['date'] = is_array($_POST[$name]) ? utils::makeTimestampFromForm($_POST[$name]) : (int) $_POST[$name]; } if (empty($params['date'])) { $params['date'] = time(); } $out = ' '; $out .= ' '; $out .= 'à H '; $out .= ''; return $out; } function tpl_modifier_taille_fichier($size) { if ($size < 1024) return $size . ' o'; elseif ($size < (1024 * 1024)) return round($size / 1024, 2) . ' Kio'; else return round($size / 1024 / 1024, 2) . ' Mio'; } function tpl_date_relative($time, $short = false) { $day = date('Ymd', $time); $today = date('Ymd'); $yesterday = date('Ymd', time() - (3600 * 24)); if ($day == $today) { return strftime('%Hh%M', $time); } elseif ($day == $yesterday) { if ($short) return 'Hier'; else return strftime('Hier %Hh%M', $time); } elseif ($today - $day <= 7) { if ($short) return ($today - $day) . ' jours'; else return ($today - $day) . ' jours ' . strftime('%Hh%M', $time); } else { return strftime($short ? '%d/%m/%y' : '%d/%m/%Y %Hh%M', $time); } } function tpl_pagination($params) { if (!isset($params['url']) || !isset($params['page']) || !isset($params['bypage']) || !isset($params['total'])) throw new BadFunctionCallException("Paramètre manquant pour pagination"); if ($params['page'] == 1 && $params['total'] <= $params['bypage']) return ''; $pagination = utils::getGenericPagination($params['page'], $params['total'], $params['bypage']); if (empty($pagination)) return ''; $out = ''; return $out; } $tpl->register_modifier('custom_date', 'tpl_modifier_custom_date'); $tpl->register_modifier('date_relative', 'tpl_date_relative'); $tpl->register_modifier('journal_url', 'tpl_modifier_journal_url'); $tpl->register_modifier('thumb_url', 'tpl_modifier_thumb_url'); $tpl->register_modifier('document_url', 'tpl_modifier_journal_document_url'); $tpl->register_modifier('get_post_value', 'tpl_modifier_get_post_value'); $tpl->register_modifier('dateheure', 'tpl_modifier_dateheure'); $tpl->register_modifier('formatter', 'tpl_modifier_formatter'); $tpl->register_modifier('formatter_minimal', 'tpl_modifier_formatter_minimal'); $tpl->register_modifier('typo_fr', 'tpl_modifier_typo_fr'); $tpl->register_modifier('hl_query', 'tpl_hl_query'); $tpl->register_modifier('taille_fichier', 'tpl_modifier_taille_fichier'); $tpl->register_function('html_date_select', 'tpl_function_html_date_select'); $tpl->register_function('form_field', 'tpl_form_field'); $tpl->register_function('csrf_field', 'tpl_csrf_field'); $tpl->register_function('pagination', 'tpl_pagination'); $tpl->register_function('html_timezone_select', 'tpl_function_html_timezone_select'); $tpl->register_function('plural', 'tpl_function_plural'); ?>