Balises SET et GET

De TheliaDoc
Aller à : navigation, rechercher

#SET et #GET

Ces balises permettent de définir et de récupérer des variables dans vos squelettes. La balise #SET définit une variable qui sera utilisable dans l’ensemble du template. La balise #GET permet ensuite de récupérer cette variable.

#SET{variable,valeur}
#GET{variable} retourne « valeur ».

« valeur » peut être un filtre. Dans ce cas, le résultat de l'évaluation du filtre sera attribué à «variable» :

#SET{variable,#FILTRE_maj(chaine)} attribue « CHAINE » à « variable »

Les espaces sont pris en compte après la virgule dans un SET ou un GET. Par exemple,

#SET{valeur, 1 }

affectera la chaine de caractère espace1espace a la variable « valeur ».

Valeur par défaut

Si variable n’a pas été définie par un #SET{variable, valeur} préalable, 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.

« valeur_par_defaut » peut être un filtre. Dans ce cas, le résultat de l'évaluation du filtre sera retournée par défaut.

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 sont accessibles dans tout le code figurant après la déclaration.

#SET est propagé dans les fichiers inclus. De même un #SET défini dans un fichier inclus sera accessible par un #GET dans le fichier incluant:

Utilisation de #SET et #GET

#SET peut être utilisé dans les boucles, pour mémoriser une information qui sera utilisée ultérieurement. On peut alors économiser l'écriture et/ou l'imbrication de plusieurs boucles  :

 <THELIA_prod type="produit" id="#PRODUIT_ID">

    <THELIA_contenu type="document" contenu="#PRODUIT_ID" num="1">
       #SET{url_document, #FICHIER}
       #SET{titre_document, #TITRE}
    </THELIA_contenu>

    ...

    <THELIA_image type="image" contenu="#PRODUIT_ID">
       <a href="#GET{url_document}"><img src="#IMAGE" alt="#GET{titre_document}" /></a>
    </THELIA_image>

    ...

    <a href="#GET{url_document}">Télécharger un document</a>

 </THELIA_prod>

De même, il est possible de propager une information au fil de l'imbrication des boucles.

 <THELIA_b1 type="...">
    #SET{var1,#VAR}
    <THELIA_b2 type="...">
       <THELIA_b3 type="...">
          <p>#GET{var1}</p>
       </THELIA_b3>
    </THELIA_b2>
 </THELIA_b1>

On peut aussi facilement constituer des listes, que l'ou pourra utiliser par exemple dans les arguments des boucles, ou dans un TEST "dansliste" !

 <THELIA_b1 type="produit" ... arguments ...>
    #SET{listeids,#GET{listeids}#FILTRE_vide(#GET{listeids}||,)#ID}
 </THELIA_b1>

 Par la suite, on utilise listeids comme suit :

 <THELIA_b2 type="produit" id="#GET{listeids}">
    ...
 </THELIA_b2>

 Ou encore :

 <TEST_list var="#PRODUIT_ID" test="dansliste" val="#GET{listeids}">
   ...
 </TEST_list>
   ...
 <//TEST_list>
  

Retour Sommaire