与Smarty交替的元素顺序

时间:2011-07-29 01:16:07

标签: html smarty

我想交替HTML代码A是否在代码B之前显示基于布尔值。

有点像:

{if $switch}B A{else}A B{/if}

然而,考虑到A和B实际上是HTML + Smarty代码的长篇部分,我不想为了可维护性而添加它们两次。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

  

{捕获}

     

{capture}用于将标签之间的模板输出收集到变量中而不是显示它。 {capture name ='foo'}和{/ capture}之间的任何内容都会收集到name属性中指定的变量中。

Source

{* template *}

{capture name=parta assign=parta}
    foo
{/capture}

{capture name=partb assign=partb}
    bar
{/capture}

{if $switch}
    {$partb} {$parta}
{else}
    {$parta} {$partb}
{/if}