if,elseif,else

Конструкция if в Smarty такая же гибкая, как и аналогичная конструкциия в php, только с несколько расширенными возможностями. with a few added features for the template engine. Каждый тэг if должен иметь пару /if . else и elseif так же допустимы. "eq", "ne", "neq", "gt", "lt", "lte", "le", "gte" "ge", "is even", "is odd", "is not even", "is not odd", "not", "mod", "div by", "even by", "odd by", "==", "!=", ">", "<", "<=", ">=" -- допустимые квалификаторы условий. Они должны быть отделены от окружающих елементов пробелами.

Пример 7-11. кострукция if

{if $name eq "Fred"}
	Welcome Sir.
{elseif $name eq "Wilma"}
	Welcome Ma'am.
{else}
	Welcome, whatever you are.
{/if}

{* пример с логикой ИЛИ ("or") *}
{if $name eq "Fred" or $name eq "Wilma"}
	...
{/if}

{* аналогичен предыдущему *}
{if $name == "Fred" || $name == "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 $var is even}
	...
{/if}
{if $var is odd}
	...
{/if}
{if $var is not odd}
	...
{/if}

{* проверка на делимость на 4 *}
{if $var is div by 4}
	...
{/if}

{* проверка на "четность" групируя по 2. т.е.,
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}