Pour illustrer la notion de fichier de squelette à inclure, l’exemple développé ici explique comment intégrer un formulaire de recherche Google dans plusieurs pages d’un squelette.
Le formulaire de recherche Google à utiliser
On souhaite mettre à disposition des utilisateur du site SPIP un formulaire de recherche qui interroge directement Google. Pour cela il faut que le code html suivant soit intégré dans la page de squelette où l’on souhaite le faire apparaître :
Remarque : il est également possible de restreindre la recherche au site SPIP sur lequel ce formulaire sera utilisé (i.e. utiliser google comme moteur de recherche "interne" au site). Pour cela on ajoutera 2 champs au formulaire précédent :
- <input type="hidden" name="as_dt" value="i">
- <input type="hidden" value="#URL_SITE_SPIP" name="as_sitesearch">
La méthode "naïve" : multiples copiés/collés
De façon ponctuelle on peut donc faire un copier/coller du code du formulaire dans toutes les pages de squelettes qui doivent afficher ce formulaire (par exemple sommaire.html, rubrique.html et article.html..)
Le problème que pose la méthode du copier/collé du code dans de multiples fichiers du squelette se posera dès que l’on va vouloir modifier un élément du formulaire : par exemple si l’on veut que les dimensions de l’image ne soient plus 141x 41 pixels mais 70 x 20.
La poursuite de la solution "naïve" précédente va donc consister à reprendre tous les fichiers dans lesquels le code à été précédemment inséré, retrouver où se trouve le code (dans 6 mois vous en souviendrez vous encore parmi les 100 ou 200 lignes de chacun d’entre eux ?) et faire la modification...
Utiliser un fichier inclu pour simplifier les mises à jour
La stratégie alternative au copier/collé répété de multiples fois consiste à utiliser un fichier à INCLURE selon la procédure suivante :
- on crée un fichier inc-google.html (par exemple) que l’on place dans notre répertoire /squelettes. Dans ce fichier on place le code précédent (exemple de fichier inc-google.html)
- dans les pages de squelettes devant afficher le formulaire google, on va désormais ajouter la balise suivante :
- [(#INCLURE{fond=inc-google})]
cette balise permet d’insérer le contenu du fichier inc-google.html à l’endroit où elle est placée (paramètre fond=...).
De cette façon, si vous souhaitez bidouiller la taille de l’image ou tout autre partie du formulaire, il suffira de modifier le code du fichier /squelettes/inc-google.html pour qu’aussitôt toutes les pages où il est appelé soient à jour !