Commandes
Les commandes sont des morceaux de texte entourés de <#
et #>
que DocuMold exécute lors de la génération d’un
document. Elles sont ce qui donne à DocuMold sa puissance.
Comme pour les commentaires, les commandes peuvent être placées n’importe où dans le modèle : au milieu d’un paragraphe, d’une table, etc. La seule limitation est qu’un commentaire ne peut pas être dans une commande et vice versa
Exemples
Voici quelques exemples que nous allons explorer :
<# nom_client #>
<# UPPER(nom_client) #>
<# nb_adultes + nb_enfants #>
<# TEXTBEFORE(serie, "-") #>
<# @IF(age < 18) #>
<# @ENDIF #>
Comme mentionné, les commandes commencent toutes par <#
et se terminent par #>
afin que DocuMold sache quoi traiter.
<# nom_client #>
Cette commande contient seulement nom_client
.
Les mots qui commencent par une lettre minuscule sont des variables. Le trait de soulignement (_
) permet d’écrire
plusieurs mots dans le nom d’une variable.
Dans ce cas : lors de la génération d’un document à partir du modèle DocuMold, la valeur de la variable remplacera toute la commande dans le document.
Bonjour <# nom_client #>,
Avec un nom_client
de “Anna Logwatch” résulte en :
Bonjour Anna Logwatch,
<# UPPER(nom_client) #>
Nous pouvons toujours voir la variable nom_client
dans la commande ci-dessus, mais maintenant elle est donnée à la fonction UPPER
. Les fonctions
sont en LETTRES MAJUSCULES et sont un seul mot ou plusieurs avec des traits de soulignement (_
). Les fonctions reçoivent
une ou plusieurs valeurs et renvoient une nouvelle valeur.
Des parenthèses (
et )
sont placées autour des valeurs que la fonction reçoit.
Dans ce cas : lors de la génération d’un document à partir du modèle DocuMold, la valeur de nom_client
est donnée à la fonction UPPER
, laquelle renvoie le même texte en MAJUSCULES, qui remplacera toute
la commande dans le document.
Bonjour <# UPPER(nom_client) #>,
Avec un nom_client
de “Anna Logwatch” résulte en :
Bonjour ANNA LOGWATCH,
<# nb_adultes + nb_enfants #>
Ici, nous avons 2 variables, nb_adultes
et nb_enfants
. Le signe plus +
fait une addition des
valeurs avant et après lui.
Les opérateurs, comme le signe plus +
, se comportent comme des fonctions en ce sens qu’ils reçoivent des valeurs et
fournissent une nouvelle, mais ils n’utilisent pas de parenthèses pour recevoir des valeurs. Lorsque plusieurs opérateurs sont utilisés
à la suite, ils sont évalués dans le même ordre qu’en mathématiques: la multiplication est calculée avant l’addition. Des parenthèses
(
et )
peuvent être utilisées pour indiquer la priorité si nécessaire.
Dans ce cas : lors de la génération d’un document, la somme des deux variables remplacera toute la commande dans le document.
Nombre de billets : <# nb_adultes + nb_enfants #>
Un nb_adultes
de 2
et un nb_enfants
de 1
résulte en :
Nombre de billets : 3
<# TEXTBEFORE(serie, "-") #>
Ici, nous avons une fonction qui reçoit 2 valeurs. Une virgule ,
est utilisée pour séparer les valeurs qu’elle
reçoit dans les parenthèses (
)
.
C’est la fonction TEXTBEFORE
, qui extrait la partie d’un texte qui est avant un délimiteur.
Dans ce cas, le texte est dans la variable serie
et le délimiteur est un -
.
Vous pourriez remarquer les guillemets ("
) autour du tiret (-
). Les guillemets entourent un morceau de texte
que vous voulez utiliser tel quel. Donc "-"
signifie le texte -
. Sans les "
, le texte pourrait ressembler à des variables,
opérateurs et autres symboles que DocuMold traite de manière spéciale. Donc pour éviter cela, tout texte
que vous souhaitez utiliser tel quel doit avoir des guillemets autour.
Donc <# TEXTBEFORE(serie, "-") #>
utilise le contenu de la variable serie
, tandis que
<# TEXTBEFORE("serie", "-") #>
utilise le texte serie
seulement, ce que nous pouvons voir ne contient
aucun tiret (-
), mais DocuMold fait simplement ce qu’on lui dit.
Dans ce cas : lors de la génération d’un document, le texte avant le premier tiret (-
) dans la variable serie
remplacera la commande dans le document.
Numéro de modèle : <# TEXTBEFORE(serie, "-") #>
Avec une serie
de “msk32-28371346”:
Numéro de modèle : msk32
<# @IF(age < 18) #>
et <# @ENDIF #>
La première commande ci-dessus peut ressembler à une fonction, et en fait il y a une fonction IF
, mais c’est en réalité
l’action @IF
. Les actions commencent toutes par une arobase (@
). Elles indiquent à DocuMold quoi faire avec les valeurs.
Les actions sont toujours placées au début d’une commande, après le <#
.
Aucun des exemples précédents n’a spécifié d’action, donc l’action par défaut a été utilisée : écrire la valeur dans le document à la place de la commande.
L’action @IF
reçoit une valeur, la condition. Vous placez ensuite du contenu régulier après la
commande, puis une autre commande : <# @ENDIF #>
.
Lors de la génération d’un document, si la condition est TRUE
, le contenu sera affiché (et les deux
commandes simplement effacées). Si la condition est FALSE
, alors le contenu et les deux commandes seront effacés.
Dans ce cas : lors de la génération d’un document, si la variable age
est inférieure à 18, le contenu
après la commande @IF
et jusqu’à @ENDIF
est affiché. Sinon, il ne l’est pas.
Informations générales
<# @IF(age < 18) #>
Restrictions pour les mineurs :
* ne peuvent pas aller dans la zone du bar.
...
<# @ENDIF #>
Plus d'informations
Avec age
de 20 résulte en :
Informations générales
Plus d'informations
Avec age
de 15 :
Informations générales
Restrictions pour les mineurs :
* ne peuvent pas aller dans la zone du bar.
...
Plus d'informations
Détails notables
Espaces et changements de ligne dans une commande
Les espaces et les changements de ligne peuvent être n’importe où dans une commande tant que vous ne divisez pas un nom (d’une
variable, fonction ou action) ou un opérateur (comme >=
).
Donc ceux-ci sont invalides :
<# UP P ER(nom_client) #>
puisqueUPPER
ne doit pas avoir d’espaces<# IF(age > = 18, "adulte") #>
puisque>
et=
doivent être adjacents pour former l’opérateur>=
Les changements de ligne peuvent rendre les longues commandes plus faciles à lire et à modifier. Par exemple, cette ligne est souvent considérée plus difficile à lire:
<#IF(age>=18,"adulte")#>
Alors que les espaces additionnels aident à distinguer les différentes parties de la commande.
<# IF(age >= 18, "adulte") #>