fenom/docs/ru/tags/set.md

2.2 KiB
Raw Permalink Blame History

Тег {set}

{set}

Тег {set} используется для установки значения переменной в процессе выполнения шаблона.

{set $var=(expr)}
{set $var}
  ... any content ...
{/set}
{set $var|modifiers}
  ... any content ...
{/set}

Имя переменной $var должно соответствовать принятому правилу именования переменных. Выражение expr может быть любое сочетание переменных, скалярных значений и массивов.

{set $v = 5}
{set $v = "value"}
{set $v = $x+$y}
{set $v = 4}
{set $v = $z++ + 1}
{set $v = --$z}
{set $v = $y/$x}
{set $v = $y-$x}
{set $v = $y*$x-2}
{set $v = ($y^$x)+7}

{set $v = [1,2,3]}
{set $v = []}
{set $v = ["one"|upper => 1, 4 => $x, "three" => 3]}
{set $v = ["key1" => $y*$x-2, "key2" => ["z" => $z]]}

{set $v = count([1,2,3])+7}

В качестве значения переменной можно задать результат отрисовки фрагмента шаблона:

{set $v}
    Some long {$text|trim}
{/set}

Такой вариант создания позволяет применить модификаторы к данным перед тем как они будут сохранены в переменную:

{set $v|escape} {* применение модификатора к значению *}
    Some long {$text|trim}
{/set}

{add}

Тег {add} делает тоже самое что и тег {set} за исключением того что сначала проверяет наличие переменной и если переменной нет — задет новое значение.

{add $var = 'value'}

Работу тега можно описать следующим образом:

{if $var is not set}
    {set $var = 'value'}
{/if}

{var}

Тег {var} старое название тега {set}, сейчас это одно и тоже.