[SPIP 1.4] 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.
Les habitués de PHP connaissent la fonction include
, dont le principe est similaire à ce qui est présenté ici.
Dans SPIP, on peut appeler un fichier depuis un autre squelette grâce à la balise <INCLURE>
(on peut aussi utiliser <INCLUDE>
, qui est identique). Sa syntaxe complète est :
Le « fichier.php3 » est le nom du fichier que l’on veut intégrer dans sa page. Par exemple, imaginons que toutes les pages du site affichent les mêmes informations en bas de page. On regroupe alors le code HTML de ce « pied de page » dans un fichier : « pied.html », squelette lui-même appelé par la page « pied.php3 » (toujours selon le principe des couples de fichiers destinés à appeler des squelettes). Il suffit d’intégrer dans chacun des squelettes voulant appeler ce fichier :
Certaines inclusions peuvent dépendre d’une variable. Par exemple, imaginons un squelette « hierarchie.html/php3 », qui affiche la hiérarchie menant à une rubrique ; on appelerait cette page par une URL de la forme : hierarchie.php3?id_rubrique=xxx
.
Dans les squelettes voulant afficher la hiérarchie à partir de la rubrique courante, il faut donc indiquer que le paramètre concerné est {id_rubrique}
; si nécessaire, on aura créé une boucle permettant de récupérer le numéro de la rubrique concernée, et on installera le code suivant à l’intérieur de cette boucle :
On peut imaginer que, dans certains squelettes, on désire récupérer non pas la hiérarchie en fonction d’une rubrique « variable » (la rubrique dans laquelle se trouve l’appel d’inclusion), mais en fonction d’une rubrique dont on connaît à l’avance le numéro. Pour cela, on peut fixer la valeur du paramètre ainsi :
N.B. Il est possible d’indiquer plusieurs paramètres dans la balise <INCLURE>
; cependant ce cas est rare. En effet, il est déjà rare dans un site sous SPIP de créer volontairement des URL à plusieurs variables, il est donc tout aussi rare d’avoir besoin d’inclusions avec plusieurs paramètres. En tout état de cause ces variables se cumuleraient par un « et logique » comme lorsqu’on les juxtapose dans la définition des boucles.
N.B. Le fichier inclus est lui-même un couple de fichiers de squelette. Ce fichier disposera donc de sa propre valeur de $delais
. Cela peut s’avérer pratique pour éviter des recalculs d’éléments lourds du site, qui ne changent pas, en y affichant une liste d’éléments qui, eux, sont très régulièrement remis à jour.