Clarifier @IF
L’action @IF
interagit avec plusieurs autres actions : @ELSEIF
, @ELSE
et @ENDIF
.
Cette page vise à clarifier comment utiliser toutes ces actions ensemble.
Note : les exemples utilisent des textes courts pour simplifier. Normalement, la fonction IF
serait préférée pour
de tels textes courts, tandis que l’action @IF
serait utilisée lorsque le contenu est plus long ou contient du formatage.
Commençons par cet exemple :
<# @IF(âge > 30) #>
Plus âgé
<# @ELSE #>
Plus jeune
<# @ENDIF #>
L’idée de base de @IF
est que vous avez une section de contenu que vous souhaitez afficher ou masquer si une condition
est respectée ou non. Dans cet exemple, l’âge est soit supérieur à 30 ans, soit il ne l’est pas.
Le contenu à masquer ou à afficher est délimité par les actions @IF
, @ELSEIF
, @ELSE
et @ENDIF
.
La section pour quand la condition de @IF
est TRUE
(respectée) commence juste après la commande @IF
et continue jusqu’à la prochaine
action @ELSEIF
, @ELSE
ou @ENDIF
.
Si vous souhaitez afficher une section différente pour quand la condition de @IF
est FALSE
(non respectée), alors cette section commence
après la commande @ELSE
.
Dans notre exemple, si âge
est supérieur à 30, nous affichons “Plus âgé”, sinon nous affichons “Plus jeune”.
@ELSE est facultatif
Vous n’aurez pas toujours du contenu à afficher lorsque la condition est FALSE
(non respectée). Dans ces situations, omettez
entièrement la commande @ELSE
. Par exemple :
<# @IF(âge > 30) #>
Plus âgé
<# @ENDIF #>
Donc si la condition ne correspond pas, alors rien n’est affiché.
Imbriquer @IF
Vous pouvez imbriquer un @IF
(et les @ELSEIF
, @ELSE
, @ENDIF
associés) à l’intérieur de n’importe quelle partie d’un autre @IF.
<# @IF(âge > 30) #>
Plus âgé <# @IF(retraité) #>et retraité<# @ENDIF #>
<# @ELSE #>
Plus jeune <# @IF(à_lécole) #>et encore à l'école<# @ENDIF #>
<# @ENDIF #>
Dans ce cas, les commandes suivant le @IF
interne sont utilisées par le @IF
interne jusqu’à ce que le @ENDIF
soit atteint,
à ce moment, les commandes seront associées au @IF
externe.
Note : Encore une fois, pour un contenu aussi court, utiliser des fonctions IF
serait normalement plus simple que les actions @IF
, mais ceci
est un exemple de @IF
.
Un raccourci : @ELSEIF
Considérez cet exemple :
<# @IF(âge > 30) #>
Plus âgé
<# @ELSE #>
<# @IF(âge > 20) #>
Entre deux
<# @ELSE #>
Plus jeune
<# @ENDIF #>
<# @ENDIF #>
Maintenant, si l’âge n’est pas supérieur à 30 ans, alors il y a une seconde condition. Nous affichons “Entre deux” si l’âge est supérieur à 20 ans, “Plus jeune” sinon.
Avoir seulement un @IF
imbriqué dans un @ELSE
, comme dans l’exemple ci-dessus, arrive souvent. Pour rendre cela
plus facile à écrire et à lire, l’action @ELSEIF
est un raccourci pour un @ELSE
directement suivi d’un @IF
.
Il prend une condition, tout comme @IF
.
Voici le même exemple réécrit avec @ELSEIF
:
<# @IF(âge > 30) #>
Plus âgé
<# @ELSEIF(âge > 20) #>
Entre deux
<# @ELSE #>
Plus jeune
<# @ENDIF #>
La manière dont cela fonctionne est que la première condition à être vraie est celle dont le contenu sera affiché. Si aucune des
conditions n’est vraie, alors le contenu de @ELSE
(s’il y a un @ELSE
), sera affiché.
Il peut y avoir plusieurs @ELSEIF
:
<# @IF(âge > 30) #>
Plus âgé
<# @ELSEIF(âge > 20) #>
Entre deux
<# @ELSEIF(âge > 10) #>
Plus jeune
<# @ELSE #>
Trop jeune
<# @ENDIF #>
Ordre des actions
Les actions doivent toujours être écrites dans cet ordre :
- Commencer par
@IF
- Tous les
@ELSEIF
(s’il y en a) vont après le@IF
. @ELSE
(qui est facultatif) va après tous les@IF
et@ELSEIF
.@ENDIF
va en dernier.
Autres choses à lire
Il y a aussi un tutoriel couvrant le contenu conditionnel qui parle de tout cela différemment. Cela peut valoir la peine d’être lu : Contenu conditionnel