Альтернативный порядок элементов с Smarty - PullRequest
0 голосов
/ 29 июля 2011

Я хочу чередовать, будет ли HTML-код A отображаться перед кодом B на основе логического значения.

Примерно так:

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

Однако, учитывая, что A и B на самом деле являются длинными частями HTML+ Разумный код, я не хочу добавлять их дважды для удобства обслуживания.

Как бы я поступил так?

1 Ответ

1 голос
/ 01 августа 2011

{capture}

{capture} используется для сбора выходных данных шаблона между тегами в переменную вместо их отображения.Любое содержимое между {capture name = 'foo'} и {/ capture} собирается в переменную, указанную в атрибуте имени.

Источник

{* template *}

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

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

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