Функции компилятора

Функции компилятора, как вы наверное догадались, вызываются только в процессе компиляции шаблона. Они могут быть полезными для вставки кода 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';
?>

HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ