if,elseif,else
'if'-Statements in Smarty erlauben die selbe Flexibilität
wie in PHP, bis auf ein paar Erweiterungen für die Template-Engine.
Jedes if muss mit einem /if
kombiniert sein. else und elseif
sind ebenfalls erlaubt. "eq", "ne","neq","gt", "lt", "lte", "le", "gte" "ge",
"is even","is odd", "is noteven","is not odd","not","mod","div by","even by",
"odd by","==","!=",">", "<","<=",">=" sind alles erlaubte Bedingungen,
und müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden.
if Anweisung
{* ein Beispiel mit 'eq' (gleich) *}
{if $name eq "Fred"}
Willkommen der Herr.
{elseif $name eq "Wilma"}
Willkommen die Dame.
{else}
Willkommen, was auch immer Du sein magst.
{/if}
{* ein Beispiel mit 'or'-Logik *}
{if $name eq "Fred" or $name eq "Wilma"}
...
{/if}
{* das selbe *}
{if $name == "Fred" || $name == "Wilma"}
...
{/if}
{* die foldende Syntax ist nicht korrekt, da die Elemente welche die
Bedingung umfassen nicht mit Leerzeichen abgetrennt sind*}
{if $name=="Fred" || $name=="Wilma"}
...
{/if}
{* Klammern sind erlaubt *}
{if ( $anzahl < 0 or $anzahl > 1000 ) and $menge >= #minMengeAmt#}
...
{/if}
{* einbetten von php Funktionsaufrufen ('gt' steht für 'grösser als') *}
{if count($var) gt 0}
...
{/if}
{* testen ob eine Zahl gerade (even) oder ungerade (odd) ist *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}
{* testen ob eine Zahl durch 4 teilbar ist (div by) *}
{if $var is div by 4}
...
{/if}
{* testen ob eine Variable gerade ist, gruppiert nach 2
0=gerade, 1=gerade, 2=ungerade, 3=ungerade, 4=gerade, 5=gerade, etc *}
{if $var is even by 2}
...
{/if}
{* 0=gerade, 1=gerade, 2=gerade, 3=ungerade, 4=ungerade, 5=ungerade, etc *}
{if $var is even by 3}
...
{/if}