Contenu conditionnel
Les conditions sont une partie importante des modèles de documents. Elles vous permettent de choisir entre des valeurs
et de cacher du contenu. Disons que vous souhaitez afficher une phrase uniquement si pays_client
est “Canada”.
1. Aller à la page du bac à sable
Nous utiliserons le bac à sable pour ce tutoriel. Si vous n’êtes pas familier avec, veuillez lire le tutoriel Utiliser le bac à sable.
Ouvrez le bac à sable :
- Connectez-vous sur https://documold.com
- Cliquez sur “Bac à sable” dans le menu à gauche
- Cliquez sur “Réinitialiser” en haut pour que vous commenciez avec le contenu que ce tutoriel attend
2. Pour quelques mots
Pour une phrase simple, la fonction IF
peut suffire.
Elle ressemble à ceci : IF(condition, valeur_si_vrai, valeur_si_faux)
.
La condition est évaluée et si elle est TRUE
, valeur_si_vrai
est
renvoyée, sinon valeur_si_faux
est renvoyée.
Note : valeur_si_faux
est optionnel.
Dans le bac à sable, entrez ceci dans une nouvelle ligne dans la boîte de gauche du bac à sable :
<# IF(pays_client = "Canada", "Vous êtes au Canada !") #>
La boîte de droite ne montrera rien encore. Le signe égal (=
) évalue à vrai seulement si les valeurs de
chaque côté sont les mêmes.
Maintenant, en bas à gauche, définissez la valeur de pays_client
à Canada
(la casse est importante, majuscule
“C”). Vous devriez alors voir apparaître “Vous êtes au Canada !” dans la boîte de droite.
Pour afficher quelque chose quand pays_client
n’est pas “Canada”, ajoutez une autre virgule puis
le texte désiré. Par exemple :
<# IF(pays_client = "Canada", "Vous êtes au Canada !", "Vous n'êtes pas au Canada") #>
La fonction IF
est utile pour une courte phrase sans mise en forme (comme ci-dessus). Note :
- Les exemples ont utilisé des valeurs directement, mais comme pour toutes les fonctions, vous pouvez utiliser des variables et d’autres fonctions dans chacune d’elles.
- Son résultat peut être utilisé dans n’importe quelle commande, elle agit comme n’importe quelle fonction. Donc ceci est valide :
<# UPPER(IF(utiliser_nom_complet, nom_complet, prénom)) #>
3. Pour une section entière
Quand le contenu à cacher/afficher est plus grand, comme des paragraphes entiers et que le contenu contient
de la mise en forme, la fonction IF
ne fera pas l’affaire.
À la place, les actions @IF
et @ENDIF
peuvent être utilisées pour envelopper des sections entières de votre document.
Nous expliquerons cela bientôt.
Ajoutez ces nouvelles lignes dans la boîte de gauche du bac à sable :
<# @IF(pays_client = "Belgique") #>
Puisque le client est de Belgique, ces étapes supplémentaires sont nécessaires :
* Conversion de devise
* Prendre en compte les fuseaux horaires lors de la prise de rendez-vous
<# @ENDIF #>
Maintenant changez la valeur de pays_client
à Belgique
pour voir votre contenu apparaître sur le côté droit.
4. Actions… ?
Les actions ressemblent à des fonctions, mais au lieu de renvoyer une valeur, elles indiquent à DocuMold ce qu’une commande doit faire.
Les actions commencent toujours par une arobase @
. Une commande ne peut contenir qu’une action et elle doit être la
première chose dans celle-ci. Si aucune action n’est spécifiée, DocuMold traite la commande comme une action @WRITE
,
qui écrit le résultat dans le document comme nous l’avons vu jusqu’à présent.
Il pourrait y avoir un peu de confusion entre IF
et @IF
. C’est le seul cas où une action et
une fonction portent le même nom. IF
est une fonction, donc elle peut être utilisée partout, et elle renvoie
une valeur à être utilisée par d’autres fonctions/commandes. @IF
est l’action, qui peut cacher des sections entières
de votre document.
Pour clarifier :
<# ... #>
est une commande@IF(...)
est une actionUPPER(...)
est une fonctionnom_client
est une variable
De nombreuses actions sont disponibles dans DocuMold, les tutoriels les aborderont progressivement.
5. Sections différentes
Pour montrer un contenu différent lorsque la condition est fausse, utilisez l’action @ELSE
.
Elle doit être entre les actions @IF
et @ENDIF
.
Ajoutez ceci avant le <# @ENDIF #>
:
<# @ELSE #>
Il n'y a pas d'étapes supplémentaires pour le pays du client.
Dans l’ensemble, cela devrait ressembler à :
<# @IF(pays_client = "Belgique") #>
Puisque le client est de Belgique, ces étapes supplémentaires sont nécessaires :
* Conversion de devise
* Prendre en compte les fuseaux horaires lors de la prise de rendez-vous
<# @ELSE #>
Il n'y a pas d'étapes supplémentaires pour le pays du client.
<# @ENDIF #>
Donc maintenant, si pays_client
est différent de Belgique
, le “Il n’y a pas d’étapes supplémentaires pour le pays du client.”
devrait apparaître dans la boîte de droite.
6. Un second pays
Ajoutons un deuxième pays pour lequel nous voulons un contenu différent. Les Canadiens sont sympas, mentionnons la remise que nous avons pour eux !
Nous utiliserons maintenant l’action @ELSEIF
. Ajoutez ceci avant le <# @ELSE #>
:
<# @ELSEIF(pays_client = "Canada") #>
Offrez un cadeau aux clients canadiens.
Résultant en :
<# @IF(pays_client = "Belgique") #>
Puisque le client est de Belgique, ces étapes supplémentaires sont nécessaires :
* Conversion de devise
* Prendre en compte les fuseaux horaires lors de la prise de rendez-vous
<# @ELSEIF(pays_client = "Canada") #>
Offrez un cadeau aux clients canadiens.
<# @ELSE #>
Il n'y a pas d'étapes supplémentaires en fonction du pays du client.
<# @ENDIF #>
Nous avons maintenant deux cas spéciaux pour pays_client
, qui montrent des sections différentes, et un cas final
affiché quand le pays est autre chose.
- Tout comme
@ELSE
,@ELSEIF
va entre un@IF
et un@ENDIF
. - Vous pouvez avoir plusieurs
@ELSEIF
consécutifs. - Si vous utilisez aussi un
@ELSE
, le@ELSE
doit être après tous les@ELSEIF
.
Conclusion
Les conditions sont un outil important pour faire en sorte que les modèles génèrent exactement ce que vous voulez. Si vous voulez plus
d’informations sur @IF
et ses actions liées, cette explication se concentre sur le sujet : Clarifier @IF
Dans ce tutoriel, tout ce que nous avons utilisé comme condition était =
. Plus d’options sont disponibles, mais elles ne seront pas
montrées dans ces tutoriels. Pour en savoir plus, lisez cette explication : Conditions.