smarty template engine
Friday, May 16, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


{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. Alle PHP Vergleichsoperatoren und Funktionen, wie ||, or, &&, and, is_array(), etc. sind erlaubt.

Wenn $security angeschaltet wurde, dann müssen alle verwendeten PHP-Funktionen im IF_FUNCS-Array in dem $security_settings-Array deklariert werden.

Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden. PHP-Äquivalente sind, sofern vorhanden, angeben.

OperatorAlternativenSyntax BeispielBedeutungPHP Äquivalent
==eq$a eq $bist gleich==
!=ne, neq$a neq $bist ungleich!=
>gt$a gt $bgrößer als>
<lt$a lt $bkleiner als<
>=gte, ge$a ge $bgrößer oder gleich>=
<=lte, le$a le $bkleiner oder gleich<=
=== $a === 0identisch===
!notnot $aNegation!
%mod$a mod $bModulo%
is [not] div by $a is not div by 4Ist [nicht] teilbar durch$a % $b == 0
is [not] even $a is not evenist [k]eine gerade Zahl$a % 2 == 0
is [not] even by $a is [not] even by $b[k]eine gerade Gruppierung($a / $b) % 2 == 0
is [not] odd $a is not oddist [k]eine ungerade Zahl$a % 2 != 0
is [not] odd by $a is not odd by $b[k]eine ungerade Gruppierung($a / $b) % 2 != 0

Beispiel 7-8. 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}

{* Auf "ist array" überprüfen. *}
{if is_array($foo) }
   .....
{/if}

{* Auf "ist nicht null" überprüfen. *}
{if isset($foo) }
   .....
{/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}



 

credits 

Smarty Copyright © 2002-2008 New Digital Group, Inc.
All rights reserved.
Last updated: Tue Feb 12 09:11:05 2008 CST