后置过滤器

模板的后置过滤器是当模板被编译后时执行的PHP函数。 后置过滤器可以通过注册过滤器来调用, 或者放置到插件目录中,用 loadFilter()函数或者 设置$autoload_filters来调用。 Smarty把编译后的代码作为第一个参数传递到函数中,并期待函数返回经过处理的代码。


Example 17.12. 使用后置过滤器

  1. <?php
  2. // 在PHP程序中
  3. function add_header_comment($tpl_source, Smarty_Internal_Template $template)
  4. {
  5. return "<?php echo \"<!-- Created by Smarty! -->\n\"; ?>\n".$tpl_source;
  6. }
  7.  
  8. // 注册后置过滤器
  9. $smarty->registerFilter('post','add_header_comment');
  10. $smarty->display('index.tpl');
  11. ?>
  12.  

上面的后置过滤器把编译后的index.tpl的代码变成这样:

  1. <!-- Created by Smarty! -->
  2. {* rest of template content... *}
  3.  

参见 registerFilter(), 前置过滤器, 输出过滤器, 和 loadFilter().

原文: https://www.smarty.net/docs/zh_CN/advanced.features.postfilters.tpl