Функции компилятора
Функции компилятора, как вы наверное догадались, вызываются
только в процессе компиляции шаблона. Они могут быть полезными
для вставки кода PHP или чувствительного ко времени статического
контента в шаблон. Если одновременно зарегестрированы две
одноименные функции - пользовательская и компилятора, то приоритет
будет у функции компилятора.
mixed smarty_compiler_name (string $tag_arg, object &$smarty)
Функция компилятора имеет два параметра: строку аргументов тэга -
чаще всего это все, что следует от наименования функции до правого
разделителя, и объект Smarty. Функция должна возвращать PHP-код
для вствки в скомпилированный шаблон.
Смотрите также
register_compiler_function(),
unregister_compiler_function().
Пример 16-6. Простой пример функции компилятора
<?php /* * Smarty plugin * ------------------------------------------------------------- * Файл: compiler.tplheader.php * Тип: compiler * Имя: tplheader * Назначение: вывести заголовок, содержащий имя исходного файла и * время, когда он был скомпилирован. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($tag_arg, &$smarty) { return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';"; } ?>
|
Эта функция может быть вызвана из шаблона следующим образом:
{* Функция выполняется только при компиляции шаблона *}
{tplheader} |
Результирующий код PHP в скомпилированном шаблоне будет выглядеть примерно так:
<?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?>
|
|