Où placer les fichiers de squelettes ?

Les squelettes sont rangés dans un dossier dédié, nommé squelettes-dist/.
Le dossier squelettes/ accueillera vos squelettes personnalisés.

Le code de SPIP et de la structure du site sont ainsi clairement séparés avec par exemple, la possibilité de changer tout un ensemble de squelettes d’un seul coup.

Les squelettes par défaut : squelettes-dist/

Les squelettes de la distribution — c’est-à-dire ceux fournis en standard à l’installation de SPIP — sont regroupés dans un unique répertoire. Ces fichiers contiennent les informations sur la mise en page par défaut du site et ne doivent pas être modifiés. Vous pouvez examiner le contenu de ce répertoire et partir de ce jeu de squelettes pour adapter la mise en page à vos besoins [1].

Toutefois, il ne faut pas modifier les squelettes de la distribution, sinon vous risqueriez de perdre toutes vos modifications à chaque mise à jour de SPIP !
Pour éviter cela, faites une copie des fichiers que vous souhaitez modifier, et placez-les dans un autre répertoire, comme indiqué ci-après.

Votre dossier squelettes/

Les squelettes personnalisés doivent être rangés dans un répertoire nommé squelettes/ (attention au « s » final !), que vous créerez à la racine de votre site SPIP. Que vous souhaitiez installer un jeu complet de squelettes (pris sur SPIP - Contrib ou ailleurs), ou apporter une légère modification aux squelettes par défaut, placez vos squelettes dans ce répertoire.

Ainsi, un utilisateur qui veut créer sa propre mise en page, développera ses propres fichiers article.html, rubrique.html, etc. dans le répertoire squelettes/. Notez bien qu’il n’est pas indispensable de placer un jeu de squelettes complet dans ce répertoire.

Pour afficher les pages du site, SPIP cherche les squelettes prioritairement dans le dossier squelettes/ ; si SPIP n’y trouve pas un fichier .html qui lui est nécessaire, il ira chercher celui de la distribution dans le dossier squelettes-dist/.
Ainsi, si vous n’avez placé qu’un seul fichier dans le dossier squelettes, par exemple article.html, SPIP utilisera ce squelette pour afficher les articles, et ceux de la dist pour toutes les autres pages du site.

Le dossier squelettes/ est destiné à recevoir tous les fichiers nécessaires à la mise en page d’un site. On y rangera donc :

  • les squelettes, c’est-à-dire les fichiers .html avec du code SPIP ;
  • les fichiers inclus dans les squelettes et les modèles ;
  • les formulaires modifiés, dans un sous-répertoire formulaires/
  • les feuilles de style CSS qui produisent l’habillage graphique ; les personnaliser permet en effet de varier, parfois spectaculairement, l’habillage d’un site sans intervenir dans les squelettes. Voir : « Mettez-y votre style ! » ;
  • les images utilisées dans les squelettes ;
  • le fichier mes_fonctions.php contenant les filtres et variables de personnalisation propres à ce jeu de squelettes ;
  • les fichiers javascripts ;
  • les fichiers de langue personnalisés (cf. : « Internationaliser les squelettes », méthode des fichiers de langues), dans un sous-répertoire lang/ ;
  • etc...

Utiliser un autre dossier de squelettes

Il est possible de ranger les squelettes dans un répertoire portant le nom de votre choix, en le déclarant dans le fichier mes_options.php, avec la variable de personnalisation $GLOBALS['dossier_squelettes'], comme expliqué dans la documentation correspondante. SPIP ira chercher les squelettes en priorité dans le répertoire ainsi déclaré.

Cela vous permet, par exemple, d’essayer un nouveau jeu de squelettes sans écraser l’ancien, ou de gérer dynamiquement plusieurs jeux de squelettes.

Vous pouvez indiquer plusieurs dossiers, avec le caractère : comme séparateur.

Exemple : lorsque $GLOBALS['dossier_squelettes']='surcharge:mesquels:tests, les squelettes du dossier ’surcharge’ sont prioritaires, puis ceux de mesquels puis ceux de tests.

Priorité des dossiers de squelettes

Soyons plus exhaustifs et résumons. Grosso modo, lorsque SPIP doit utiliser un fichier, il le cherche dans différents répertoires dans l’ordre suivant :

  1. en premier lieu dans la liste de dossiers désignés dans la variable $GLOBALS['dossier_squelettes'], si celle-ci est définie ;
  2. ensuite dans le dossier squelettes/ situé à la racine du site ;
  3. puis dans la liste de dossiers de la variable $plugins ;
  4. ensuite à la racine du site ;
  5. dans le répertoire squelettes-dist/ ;
  6. et enfin dans le répertoire ecrire/.

« Grosso modo », car à cela s’ajoutent quelques subtilités [2], dont un ordre de priorité par fichier de squelette, qui permet des variantes plus fines : par rubrique, par branche ou par langue, comme expliqué dans la documentation correspondante.

Remarque : En fait, le mécanisme décrit ci-dessus pour choisir l’emplacement d’un fichier ne s’applique pas seulement aux squelettes, mais aussi à l’ensemble du code de SPIP. Dans le jargon des développeurs on parle de « surcharger du code », l’ordre de choix des dossiers étant dans le « SPIP_PATH ». Cela met en place le cadre et les normes pour le développement des « plug-ins », extensions des fonctionnalités de SPIP que tout un chacun dans la communauté peut apporter.

Ainsi, on peut modifier à souhait n’importe quelle caractéristique du comportement de SPIP sans pour cela se priver des évolutions de la distribution et du support de la communauté. SPIP est modulaire !

Notes

[1C’est même une méthode vivement conseillée, car ce jeu de squelettes a été pensé pour être aussi modulaire que possible.

[2Comme une nomenclature des fichiers en fonction de leur rôle, ce qui fait, par exemple, que SPIP ira chercher les fichiers de langue dans un sous répertoire lang/, comme nous l’avons vu plus haut.

Auteur L’équipe de SPIP Publié le : Mis à jour : 11/07/23

Traductions : عربي, català, corsu, English, Español, français, italiano, Nederlands, Türkçe, українська