Skip to content

{setfilter}

{setfilter}...{/setfilter}块标签允许定义模板实例的变量过滤器。

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

过滤器可以是:

  • 通过其名称指定的变量过滤器插件。

  • 通过其名称和可选的额外参数指定的修饰符。

{setfilter}...{/setfilter}块可以嵌套。内部块的过滤器定义会替换外部块的定义。

模板实例过滤器除了其他修饰符和过滤器外还会运行。它们按以下顺序运行:修饰符,default_modifier,$escape_html,注册的变量过滤器,自动加载的变量过滤器,模板实例的变量过滤器。default_modifier 之后的所有内容都可以用nofilter标志禁用。

注意

设置模板实例过滤器不会影响包含的子模板的输出。

示例

<script>
    {setfilter filter1}
      {$foo} {* filter1 在 $foo 的输出上运行 *}
      {setfilter filter2|mod:true}
        {$bar} {* filter2 和修饰符 mod 在 $bar 的输出上运行 *}
      {/setfilter}
      {$buh} {* filter1 在 $buh 的输出上运行 *}
    {/setfilter}
    {$blar} {* 没有模板实例过滤器在 $blar 的输出上运行 *}
</script>