{setfilter}

{setfilter}…{/setfilter}块标签可以使用模板定义的变量过滤器。

语法: {setfilter filter1|filter2|filter3….}…{/setfilter}

过滤器可以是:

  • 变量过滤插件的名称。

  • 修饰器的名称和可选的参数。

{setfilter}…{/setfilter}可以被嵌套。 内部的过滤器块会被外部的过滤器块给替代。

模板过滤器可以和其他过滤器修饰器一起使用。 它们会按照如下顺序执行: 修饰器, 默认修饰器, $escape_html, 注册的变量过滤器, 自动载入的变量过滤器, 模板块变量过滤器。 所有在“默认修饰器”之后的东西,都可以被nofilter关闭。


Example 7.77. {setfilter} 标签

  1. <script>
  2. {setfilter filter1}
  3. {$foo} {* filter1 runs on output of $foo *}
  4. {setfilter filter2|mod:true}
  5. {$bar} {* filter2 and modifier mod runs on output of $bar *}
  6. {/setfilter}
  7. {$buh} {* filter1 runs on output of $buh *}
  8. {/setfilter}
  9. {$blar} {* no template instance filter runs on output of $blar}
  10. </script>
  11.  

Note

模板块变量过滤器不会影响到包含的子模板。

原文: https://www.smarty.net/docs/zh_CN/language.function.setfilter.tpl