if,elseif,else
l'instruction if dans Smarty dispose de la même flexibilité que l'instruction
PHP du même nom, avec quelques fonctionnalités supplémentaires pour le
moteur de template. Tous les if doivent être
utilisés de pair avec un /if.
else et elseif sont également
des balises autorisées. "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","==", "===", "!=",">", "<","<=",">=" sont tous des opérateurs conditionnels valides, et doivent obligatoirement être
séparés des autres éléments par des espaces.
La liste suivante présente les opérateurs reconnus, qui doivent être entourés d'espaces.
Remarquez que les éléments listés entre [crochets] sont optionnels. Les équivalents
PHP sont indiqués lorsque applicables.
Opérateur
Syntaxe alternative
Exemple de syntaxe
Signification
Equivalent PHP
==
eq
$a eq $b
égalité
==
!=
ne, neq
$a neq $b
différence
!=
>
gt
$a gt $b
supérieur à
>
<
lt
$a lt $b
inférieur à
<
>=
gte, ge
$a ge $b
supérieur ou égal à
>=
<=
lte, le
$a le $b
inférieur ou égal à
<=
====
$a === 0
égalité (type et valeur)
====
!
not
not $a
négation
!
%
mod
$a mod $b
modulo
%
is [not] div by
$a is not div by 4
divisible par
$a % $b == 0
is [not] even
$a is not even
est [ou non] un nombre pair
$a % 2 == 0
is [not] even by
$a is not even by $b
paritée de groupe
($a / $b) % 2 == 0
is [not] odd
$a is not odd
est [ou non] un nombre impair
$a % 2 != 0
is [not] odd by
$a is not odd by $b
est [ou non] un groupe impair
($a / $b) % 2 != 0
Instruction if
{if $name eq "Fred"}
Bienvenue, Monsieur.
{elseif $name eq "Wilma"}
Bienvenue m'dame.
{else}
Bienvenue, qui que vous soyez.
{/if}
{* Un exemple avec l'opérateur or *}
{if $name eq "Fred" or $name eq "Wilma"}
...
{/if}
{* même chose que ci-dessus *}
{if $name == "Fred" || $name == "Wilma"}
...
{/if}
{* l'exemple suivant NE fonctionne PAS, les opérateurs
doivent être entourés d'espaces. *}
{if $name=="Fred" || $name=="Wilma"}
...
{/if}
{* les parenthèses sont autorisées *}
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
...
{/if}
{* vous pouvez également faire appel aux fonctions PHP *}
{if count($var) gt 0}
...
{/if}
{* teste si les valeurs sont paires(even) ou impaires(odd) *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}
{* teste si la variable est divisble par 4 *}
{if $var is div by 4}
...
{/if}
{* teste si la variable est paire, par groupe de deux i.e.,
0=paire, 1=paire, 2=impaire, 3=impaire, 4=paire, 5=paire, etc. *}
{if $var is even by 2}
...
{/if}
{* 0=paire, 1=paire, 2=paire, 3=impaire, 4=impaire, 5=impaire, etc. *}
{if $var is even by 3}
...
{/if}