What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Функции компилятора, как вы наверное догадались, вызываются только в процессе компиляции шаблона. Они могут быть полезными для вставки кода PHP или чувствительного ко времени статического контента в шаблон. Если одновременно зарегестрированы две одноименные функции - пользовательская и компилятора, то приоритет будет у функции компилятора.
mixed smarty_compiler_name( |
$tag_arg, | |
&$smarty) ; |
string $tag_arg
;object &$smarty
;Функция компилятора имеет два параметра: строку аргументов тэга - чаще всего это все, что следует от наименования функции до правого разделителя, и объект Smarty. Функция должна возвращать PHP-код для вствки в скомпилированный шаблон.
Смотрите также register_compiler_function(), unregister_compiler_function().
Example 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'; ?>