generationcyb.net pointcyb lien vers les points cyb
Inscription à la lettre d'information | Fil infos rss 

 

Accueil > Spip > Personnaliser les squelettes graphiques

Créer et modifier des squelettes SPIP


Version imprimable Version imprimable



Qu’y a t-il dans un squelette ?

Les "squelettes" html sont les patrons-types qui définissent le look de toutes les pages du site : pour les pages présentant les articles, il existe un squelette html nommé par défaut article.html, pour les pages présentant les rubriques, c’est rubrique.html, etc.

Les squelettes SPIP ne contiennent normalement que du code html et des boucles SPIP (et parfois du javascript). On peut donc, à condition de connaître leur emplacement dans un site, les afficher dans un navigateur pour voir comment ils sont construits et éventuellement s’en inspirer pour construire ses propres squelettes.
Un squelette peut exceptionnellement comporter du code php qui, en général, n’apparaît pas dans un navigateur (puisqu’il ne s’affiche pas mais est interprêté).

Modifier la mise en page générale de son site consiste donc à personnaliser ses squelettes, en créant ou modifiant du code html et des boucles.

Où sont logés les squelettes ? [1]

Les squelettes par défaut se trouvent dans le répertoire dist logé à la racine du site. Depuis SPIP 1.9, ce répertoire est indispensable et ne doit pas être effacé. Il ne faut pas modifier les fichiers de ce répertoire dist. Ce répertoire est en effet renouvelé à l’occasion de chaque changement de version de SPIP (si vous décidez, bien sûr, d’installer cette nouvelle version sur votre site SPIP). Si vous modifiez les squelettes de ce répertoire, vos modifications seront donc perdues lors du changement de version.
Depuis SPIP 1.9, il est souhaitable de ne plus loger de squelettes directement à la racine du site. Si l’on personnalise son site en créant ses propres squelettes, on peut créer pour cela un répertoire par défaut : squelettes (ne pas oublier le s à la fin !). On peut aussi créer un répertoire spécifique (par exemple "mes_squelettes_geniaux") placé à la racine du site et l’indiquer dans le fichier mes_fonctions.php à la racine du site (ou un fichier ecrire/mes_options.php [2]), sous la forme <?php $GLOBALS ['dossier_squelettes'] = 'mes_squelettes_geniaux'; ?>.

Dans cet exemple, la variable $dossier_squelettes prend la valeur mes_squelettes_geniaux (attention si vous copiez-coller le code depuis cet article de bien avoir en final des guillemets droits de code php et non des guillemets d’imprimerie ; cela peut bloquer le fonctionnement du procédé).

Cela permet même d’avoir plusieurs séries de squelettes (par exemple, printemps, été, automne, hiver) et de modifier périodiquement le fichier ecrire/mes_options.php pour activer l’une ou l’autre série. Cela permet également de gérer dynamiquement plusieurs jeux de squelettes avec un plugin tel que Switcher.

De façon générale, SPIP ira d’abord chercher les squelettes dans le répertoire mes_squelettes_geniaux, puis, s’il ne trouve pas celui qu’il cherche, dans le répertoire squelettes, puis à la racine, puis dans le répertoire dist.

Le fonctionnement dynamique des squelettes

Le fonctionnement dynamique des squelettes - c’est-à-dire la façon dont ils vont puiser dans la base de données les informations demandées par l’internaute et affichent celles-ci dans la mise en page prédéfinie - est assuré par les boucles.

Jusqu’à SPIP 1.9, chaque squelette html possédait son "double" php3 dont le rôle était en quelque sorte d’activer les boucles du squelette en question. Par exemple, la page article.html était couplée à la page article.php3.

Depuis SPIP 1.9, les fichiers article.php3, rubrique.php3, sommaire.php3, etc. ont disparu et ont été remplacés par un unique fichier situé toujours à la racine du site : spip.php.

Depuis SPIP 1.9, les url des pages ne sont plus du type www.monsite.com/article.php3 ?id_article=93 (ici pour l’article n°93), mais du type www.monsite.com/spip.php ?article93, à moins qu’il n’y ait réécriture d’url (voir ci-dessous). Lorsque l’internaute clique sur un lien hypertexte conduisant à l’article n°93, son navigateur appelle la page www.monsite.com/spip.php ?article93, c’est-à-dire, "en gros", le squelette article.html alimenté par les contenus de la base de données correspondant à l’article n°93.

Des squelettes inclus dans d’autres squelettes

Les parties de squelettes qui ne changent pas d’un squelette à un autre (menu gauche, bandeau haut, etc.) peuvent constituer elles-mêmes des morceaux de squelettes et être appelées par des "INCLURE". Par exemple un bandeau haut peut être nommé header.html et être appelé depuis les squelettes sommaire.html, rubrique.html, etc. par le code <INCLURE {fond=header}>.

Les squelettes par défaut de SPIP (qui figurent dans le dossier dist) sont construits avec des inclusions : trois pour le menu de navigation par rubriques, l’entête et le pied de page, qui sont répétés sur chaque page, et deux autres pour les forums et les signatures de pétitions.

NB : suite à la disparition, à partir de SPIP 1.9, des fichiers article.php3 etc., on ne précise plus que le nom du squelette dans les INCLURE, et non plus le nom du fichier php3 comme auparavant : par exemple

ou

pour une inclusion avec paramètre.

Des squelettes différenciés par rubrique

Si vous souhaitez que vos rubriques et articles aient un look différent d’une rubrique à une autre, SPIP prévoit un fonctionnement automatique qui repose sur les principes suivants :
- le squelette rubrique-17.html s’applique à la rubrique n°17 (attention, il s’agit du n° de rubrique créé par SPIP) et à ses sous-rubriques,
- le squelette article-17.html s’applique aux articles de la rubrique n°17 et de ses sous-rubriques,
- le squelette rubrique=17.html s’applique à la rubrique n°17 mais pas à ses sous-rubriques,
- le squelette article=17.html s’applique aux articles de la rubrique n°17 mais pas à ceux de ses sous-rubriques,
- le squelette breve=28.html s’applique aux brèves de la rubrique n°28.

Précautions à prendre lors de la création ou modification de squelettes

- avant de modifier des squelettes SPIP à l’aide d’un éditeur comme Dreamweaver ou NVU, désactivez les corrections automatiques des codes non reconnus, sous peine de voir transformés les codes des boucles SPIP,

- sauvegardez régulièrement - et, en tout cas, avant toute modification importante - la version antérieure de votre squelette pour pouvoir réutiliser cette dernière en cas de plantage avec le nouveau squelette,

- n’effectuez pas un trop grand nombre de modifications d’un coup, mais testez vos modifications une à une, au moins lorsqu’il s’agit de modifications importantes. (rappel : lorsque l’on actualise une page modifiée, le cache de SPIP et le cache du navigateur Web gênent parfois l’opération et "ne s’aperçoivent pas" qu’il y a eu modification. Il est alors nécessaire de vider le cache SPIP en allant dans l’interface de gestion),

- lorsque l’on effectue une opération de copier/coller sur une "grande" quantité de lignes de code dans un éditeur comme Dreamweaver, il lui arrive de saturer et d’en perdre une partie en route. Il la remplace alors gentiment par des points d’interrogation… A corriger !!!!

Conseils généraux concernant la mise en page et la modification de squelettes

- Il est à notre avis plus facile de créer de nouveaux squelettes à partir de zéro, en copiant ou créant au fur et à mesure les boucles dont vous avez besoin, plutôt que de partir des squelettes de base de SPIP,

- Utilisez les inclusions de squelettes (INCLURE) pour les parties que l’on retrouve d’un squelette à un autre : menu haut, bas de page, etc.

- De façon générale, créer vos propres squelettes demandera de trouver un juste équilibre entre :

Importer et installer des squelettes depuis un autre site SPIP

Vous pouvez aussi choisir d’ installer sur votre site des squelettes provenant d’un autre site (avec l’autorisation de leur concepteur). Par exemple, le site www.spip-contrib.net en propose plusieurs jeux, déposés par leurs concepteurs en paquets zippés.

Sachez que, légalement, les squelettes restent, comme les images, la propriété de leur auteur. Vous pouvez "vous en inspirer" pour créer les vôtres ou les copier, si l’auteur en est d’accord. Rappelez-vous de toute façon que logos, pictos et images sont protégés par le droit d’auteur et ne peuvent pas être copiés dans la foulée.

Précautions à prendre lorsque l’on installe des squelettes d’un autre site sur son propre site

Tout d’abord, vérifiez que la version de SPIP pour laquelle les squelettes ont été conçus est bien la version de SPIP que vous avez installée (si possible, la plus récente). Regardez aussi si les squelettes sont conformes aux standards W3C ou non. Des squelettes conformes… c’est mieux !

Ensuite, les développeurs qui mettent leurs squelettes à disposition de la communauté ne prennent pas toujours le temps de les "dépoussiérer" d’éléments qui seront inutiles ou même inappropriés pour votre site :

- corrigez les liens "figés" des squelettes Si vous installez par exemple sur votre site les squelettes Sandnyko, vous aurez à corriger le nom des rubriques et sous-rubriques ainsi que les pages vers lesquelles ces liens pointent, car ils ne sont pas gérés de façon dynamique mais inscrits en dur dans le code html. Le travail consiste alors à concevoir les boucles qui vont réinstaurer ce fonctionnempent dynamique.

- corrigez les contenus "figés" des squelettes D’autres éléments sont souvent inscrits en dur dans des squelettes : images, images d’arrière-plan, textes… A vous de remplacer ces éléments par les vôtres.

- supprimez les marqueurs ! Sur chaque squelette du site www.generationcyb.net figure un marqueur Xiti (système d’analyse d’affluence). Supprimez-le de votre squelette (et réinscrivez-vous à Xiti si vous voulez, c’est gratuit), car ce marqueur comporte un identifiant spécifique au site en question. L’installer sur votre site perturberait vos statistiques d’affluence et celles de l’autre site.

Voir aussi :
- www.biotechno.fr/Construire-ses-propres-squelettes.html


[1] Voir aussi www.spip.net/fr_article3347.html.

[2] Voir l’article "Les variables de personnalisation".

Mis en ligne le mardi 12 septembre 2006



Répondre à cet article

Forum

Contact | Plan du site | Espace privé
Dernier ajout : vendredi 24 mai 2013 | 821 articles sur ce site.

Generationcyb.net est motoris´ par Spip 1.9.2e associ´ a un squelette spip Rizom
Sauf indication, les articles sont mis a disposition sous un contrat Creative Commons
Ministere en charge de la jeunesse Institut national de la jeunesse et de l'education populaire Information jeunesse Centre d'information et de documentation jeunesse