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 :

  1. Commencer par @IF
  2. Tous les @ELSEIF (s’il y en a) vont après le @IF.
  3. @ELSE (qui est facultatif) va après tous les @IF et @ELSEIF.
  4. @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