Smarty 图标

你可以根据商标通知使用 Smarty 徽标。

Smarty Template Engine Smarty Template Engine

如需赞助、广告、新闻或其他咨询,请联系:

使用 Smarty 的站点

广告

编译器函数

编译器函数仅在编译模板期间被调用。它们对于将 PHP 代码或时效性静态内容注入到模板中很有用。如果在相同名称下既注册了编译器函数又注册了自定义函数,则编译器函数具有优先权。

mixed smarty_compiler_name( $params,  
  $smarty);  
array $params;
object $smarty;
 

向编译器函数传递两个参数:包含属性值预编译字符串的 params 数组以及 Smarty 对象。它应该返回要注入到已编译模板中的代码,包括周围的 PHP 标记。

范例 18.6 一个简单的编译器函数

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     compiler.tplheader.php
 * Type:     compiler
 * Name:     tplheader
 * Purpose:  Output header containing the source file name and
 *           the time it was compiled.
 * -------------------------------------------------------------
 */
function smarty_compiler_tplheader($params, Smarty $smarty)
{
    return "<?php\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';\n?>";
}
?>

该函数可以从模板中这样调用

{* this function gets executed at compile time only *}
{tplheader}

     

已编译模板中的结果 PHP 代码类似于这样

<?php
echo 'index.tpl compiled at 2002-02-20 20:02';
?>

     

另请参阅 registerPlugin()unregisterPlugin()