我想交替HTML代码A是否在代码B之前显示基于布尔值。
有点像:
{if $switch}B A{else}A B{/if}
然而,考虑到A和B实际上是HTML + Smarty代码的长篇部分,我不想为了可维护性而添加它们两次。
我将如何做到这一点?
答案 0 :(得分:1)
{捕获}
{capture}用于将标签之间的模板输出收集到变量中而不是显示它。 {capture name ='foo'}和{/ capture}之间的任何内容都会收集到name属性中指定的变量中。
{* template *}
{capture name=parta assign=parta}
foo
{/capture}
{capture name=partb assign=partb}
bar
{/capture}
{if $switch}
{$partb} {$parta}
{else}
{$parta} {$partb}
{/if}