Usage
#SET{variable,valeur}
#GET{variable}
retourne "valeur".
La variable définie par #SET
peut être une chaîne de caractères ou un tableau.
Une chaîne de caractères
#SET{ma_chaine, article de #NOM}
#GET{ma_chaine}
…affichera : article de Toto
Si votre chaine contient des virgules, il faut utiliser des guillemets :
#SET{parfums,'Vanille, fraise, chocolat'}
#GET{parfums}
…affichera : Vanille, fraise, chocolat
Un tableau
#SET{mon_tablo, #ARRAY{a,un,b,deux,c,trois,d,quatre}}
[(#GET{mon_tablo}|foreach)]
…affichera :
- a => un
- b => deux
- c => trois
- d => quatre
Comme pour la balise #ENV
il est possible d’accéder directement à une des valeurs du tableau avec l’aide d’un /
.
Avec le tableau de l’exemple précédent, #GET{mon_tablo/b}
renvoie deux
.
Usages avancés avec les chaînes de caractères
- Une expression régulière :
#SET{reg1, '(^.*/[^/]+[/])'}
#SET{reg2, '\.[\w-_]+?'}
<BOUCLE_def(DOCUMENTS){tout}>
[(#FICHIER|replace{#GET{reg2}}|replace{#GET{reg1}})]<hr>
</BOUCLE_def>
…permet de récupérer et d’afficher le nom du fichier d’un document, débarrassé de son chemin d’accès (path) et de son extension.
Par exemple, si #FICHIER
est IMG/pdf/Stats_Sejour_au_311207.pdf nous afficherons Stats_Sejour_au_311207.
L’intérêt ici d’utiliser les balises #SET
et #GET
pour l’expression régulière est de permettre l’utilisation des crochets ([ et ]) dans le filtre |replace
.
- Le résultat retourné par un INCLURE
:
#SET{mon_retour, #INCLURE{fond=calculs}}
Définir une valeur par défaut pour #GET
À l’instar de la balise #ENV, il est possible de préciser une valeur par défaut lors de l’insertion de la balise #GET :
#GET{variable, valeur_par_defaut}
…retournera « valeur_par_defaut, » si « variable » n’a pas été définie auparavant.
Attention : cette méthode n’attribue pas « valeur_par_defaut » à
« variable ».
Portée de la variable définie par #SET
Les valeurs définies par la balise #SET
restent locales au squelette où elles ont été définies.
Ainsi, la valeur d’une variable définie par un SET dans un fichier inclu ne pourra pas être récupérée par le GET correspondant dans le fichier incluant.
Savoir où placer sa déclaration #SET
Lorsqu’on veut qu’une boucle fournisse une ou plusieurs valeurs à une variable déclarée avec #SET
il convient de placer la déclaration de ce #SET
avant la toute première balise ouvrante de la boucle.
Ceci est particulièrement important lorque la boucle est déclarée avec sa syntaxe complète (en effet une déclaration #SET
placée entre <B_..>
et <BOUCLE_...>
sera initialisée après l’exécution de la boucle.)
Voir aussi
Les balises tableaux
Critères