|
|

|
{if},{elseif},{else}
Конструкция {if} в Smarty такая же гибкая, как и
конструкция
if в PHP,
только с несколькими дополнительными возможностями для шаблонов.
Каждый тэг {if} должен иметь пару
{/if}. {else} и
{elseif} так же допустимы. Досутпны все квалификаторы
и функции
из PHP, такие как ||, or,
&&, and,
is_array() и т.д.
Если $security включена,
то массив IF_FUNCS в массиве $security_settings.
Ниже следует список распознаваемых квалификаторов, которые должны быть
отделены от окружающих элементов пробелами. Обратите внимания, что
объекты в [квадратных скобках] являются необязательными. Иногда указаны
эквиваленты в PHP.
Пример 7-8. примеры использования {if} {if $name eq 'Fred'}
Welcome Sir.
{elseif $name eq 'Wilma'}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
{* пример с логикой "или" *}
{if $name eq 'Fred' or $name eq 'Wilma'}
...
{/if}
{* то же самое, что и выше *}
{if $name == 'Fred' || $name == 'Wilma'}
...
{/if}
{* скобки разрешены *}
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
...
{/if}
{* вы также можете использовать функции php *}
{if count($var) gt 0}
...
{/if}
{* проверка на массив *}
{if is_array($foo) }
...
{/if}
{* проверка на существование *}
{if isset($foo) }
...
{/if}
{* проверяет чётность значений *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}
{* проверяет, делится ли $var на 4 без остатка *}
{if $var is div by 4}
...
{/if}
{*
проверяет, является ли $var чётным двум, например
0=чётно, 1=чётно, 2=нечётно, 3=нечётно, 4=чётно, 5=чётно и т.д.
*}
{if $var is even by 2}
...
{/if}
{* 0=чётно, 1=чётно, 2=чётно, 3=нечётно, 4=нечётно, 5=нечётно и т.д. *}
{if $var is even by 3}
...
{/if} |
|
Пример 7-9. ещё несколько примеров использования {if} {if isset($name) && $name = 'Blog'}
{* сделать что-нибудь *}
{elseif $name == $foo}
{* сделать что-нибудь другое *}
{/if}
{if is_array($foo) && count($foo) > 0)
{* выполнить цикл foreach *}
{/if} |
|
|
|
|