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@IFet@ELSEIF.@ENDIFva 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