预过滤器 {/programmers/advanced-features/.prefilters}
模板预过滤器是在模板编译之前运行的 PHP 函数。这对预处理你的模板以移除不需要的注释、监视人们在模板中放入的内容等非常有用。
预过滤器可以通过注册或者使用loadFilter()函数从插件目录加载,或者设置$autoload_filters变量。
Smarty 会将模板源代码作为第一个参数传递,并期望函数返回结果模板源代码。
下面的代码将移除模板源中的所有 html 注释。
<?php
// 在你的应用中放入以下代码
function remove_dw_comments($tpl_source, Smarty_Internal_Template $template)
{
return preg_replace("/<!--#.*-->/U",'',$tpl_source);
}
// 注册预过滤器
$smarty->registerFilter('pre','remove_dw_comments');
$smarty->display('index.tpl');
?>
参见 registerFilter()、
后过滤器 和
loadFilter()。