{if},{elseif},{else}
Funkce {if} funguje jako klasická podmínka PHP. Tedy pokud část výroku v klasuzuli {if} platí, pak se podmínka vykoná. Část {elseif} testuje další podmínku v případě neúspěchu první části. Poslední část {else} se vykoná v případě, že žádná z předchozích podmínek nebyla vyhodnocena kladně. Celý cyklus podmínek musí být ukončen značkou {/if}.
Když už jsme u podmínek, možná vás napadne, zda můžete používat operátory stejné jako v PHP. Ano, můžete, ale musí být vždy odděleny mezerou. Smarty navíc rozšiřuje výčet použitelných operátorů. Můžete rovněž použít funkce php.
Následuje výčet několika použitelných operátorů i s alternativami v závorce: == (eq) znamená rovná se, != (ne, neq) znamená nerovná se, > (gt) znamená je větší než, < (lt) znamená je menší než atd. Doporučuji se podívat na kompletní výčet. Proč je v Smarty tolik ekvivalentů pro různé operátory je mi záhadou.
<?php
$pole = array('prvni','druhy','treti','ctvrty');
$smarty->assign('pole',$pole);
$smarty->assign('cislo1',1);
?>
a šablona:
<body>
{if $cislo1 == 0}
<p>Promenna $cislo1 je rovna nule</p>
{elseif $cislo1 == 1}
<p>Promenna $cislo1 je rovna jedne</p>
{else}
<p>Do tolika neumim pocitat</p>
{/if}
{if is_array($pole) }
<p>Smarty umožňuje použít i funkce PHP</p>
{/if}
</body>
A výsledek bude:
Promenna $cislo1 je rovna jedne
Smarty umožňuje použít i funkce PHP
Pokračujte dále: {include}