Mercredi 12 avril 2006 — Dernier ajout lundi 6 avril 2009

Déclarer des variables dans SPIP 1.9

En principe, c’est impossible. En pratique, c’est très facile.

La balise #ENV

La documentation de SPIP nous la présente la balise #ENV ainsi :

[(#ENV{xxxx,zzzz})] à partir de SPIP 1.8, permet d’accéder à la variable de nom xxxx passée par la requête HTTP. zzzz est une partie optionnelle qui permet de retourner une valeur même si la variable xxxx n’existe pas.

La balise <INCLURE>

La documentation d’INCLURE nous apprend : « Lorsque l’on a des éléments de texte et des boucles communs à plusieurs fichiers, on peut vouloir extraire ces éléments des pages où ils se trouvent, les installer dans un fichier séparé, et les appeler depuis les autres squelettes. De cette façon, le code commun est regroupé dans un unique fichier, ce qui facilite notamment les modifications qui concernent plusieurs squelettes d’un seul coup. »

La syntaxe utilisable avec SPIP 1.9 est :

<INCLURE{fond=nom_fichier_squelette}{params1}>

Déclaration de variable et utilisation

Il n’y a pas de syntaxe dans SPIP pour déclarer une variable.

Mais en utilisant <INCLURE> et #ENV, il est tout à fait possible de simuler la déclaration et l’utilisation d’une variable. Pour être précis, ce qu’on obtiendra sera alors une constante dont la valeur sera fixée au moment de son initialisation.

Déclaration

La déclaration se fait tout simplement au niveau des paramètres optionnels de l’<INCLURE>.

Pour cet exemple, la variable largeur prend la valeur 50.

Et ici, la variable TitreDernierArticle prend la valeur du champ #TITRE du dernier article publié.

Utilisation

L’utilisation dans le squelette inclus est extrêmement simple :

  • #ENV{largeur} renvoie 50
  • #ENV{TitreDernierArticle} renvoie le titre trouvée dans le squelette incluant

À la syntaxe de l’inclusion près, la technique utilisée ici est aussi valable avec SPIP 1.8.3.

Syntaxe : <INCLURE(page.php3){fond=nom_fichier_squelette}>

Vos réactions

  • arsib 10 juin 2011 20:04

    Oui, mais comment passer un tableau de valeurs avec la balise INCLURE ?