avatarphp  

php {if},{elseif},{else} unter Smarty

{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.

via www.smarty.net

    hier ein Beispiel

{* 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}

Kommentare (3)

  
+
+1
Wenn ich mich recht an die Zeit erinnere in der ich mit dem Zend Framework experimentiert habe, ist Smarty bei solchen Schleifen bzw. Abfragen aber nicht sonderlich schnell.
Gut wenn mans cachen kann. Umso schlechter wenn das aus dem ein, oder anderen Grund NICHt geht...
avatar

Futjikato

  • vor ungefähr 10 Monaten
+
0
geht eigentlich. Smarty ist relativ schnell… kennt jemand noch weitere template engines für PHP?
avatar

BuzzEins

  • vor ungefähr 10 Monaten
+
0
Die ist der Kaller: www.twig-project.org/
avatar

unsicherheitsagent

  • vor ungefähr 9 Monaten

 



Ihre Email bleibt unsichtbar


jeder zweite dofollow :)