Proposition de structure des squelettes SPIP

La structure actuelle

La commande <INCLURE {fond=xxxx} ......> et la nouvelle balise #INCLURE permettent la modularisation des squelettes Spip. Ces commandes permettennt de mettre en œuvre la notion de noisette chère à de nombreux développeurs Spip (SpipKits, monter son squelette en kit ) mais aussi Coder ses squelettes avec des INCLURE.

En poussant à l’extrème, un squelette type pourrait avoir la structure suivante (exemple de rubrique.html) :

<html> 
  <head> 
  < INCLURE{ fond = header\}> Noisette  header 
  </head>  
  <body> 
  <div class = ''entete''>  
  <INCLURE{ fond = entete} > Noisette entete
  </div> 
  <div class = ''menu'' > 
  <INCLURE{ fond = menu} \{ id_rubrique} > Noisette menu
  </div> 
  <div class = ''contenu''> 
  <INCLURE{ fond = contenu} { id_rubrique}   Noisette contenu 
  </div> 
  <div class = ''pied''> 
  <INCLURE{ fond = pied}    > Noisette pied 
  </div>  
  </body> 
  </html>

Dans chaque <div> du squelette, on insère la noix ou la noisette qui va bien, :
-   <INCLURE{fond=header}....> entre les balises <head> ...</head>
-   <INCLURE{fond=menu}....> dans le <div class="menu">
-   <INCLURE{fond=contenu}....> dans le <div class="contenu">
-  ....

Dans cette structure, chaque fichier squelette : sommaire.html, rubrique.html, article.html, etc. est une coquille dans laquelle on insère noix et noisette, on constate alors rapidement que pour un site classique tous ces fichiers ont la même structure (feuille de style deux ou trois colonnes avec un bandeau et un pied de page) et qu’il serait judicieux de n’avoir à maintenir qu’un seul fichier plutot que ces n fichiers d’où la proposition de structure qui suit.

Proposition

-  la structure des pages web est décrite dans un fichier squelette unique : squelette.html, le [*tronc*] du site
-  les fichiers squelettes de base (sommaire, rubrique, article,...) appellent tous un même squelette avec les paramètres nécessaires

  • <INCLURE{fond=squelette}{skl=skl_rubrique}{id_rubrique}> pour rubrique.html
  • <INCLURE{fond=squelette}{skl=skl_article}{id_rubrique}> pour article.html
  • ....

-  le squelette squelette.html inclue différents contenus en fonction des paramètres transmis la structure pouvant être la suivante

[(#ENV{skl}|=={skl_sommaire}|?{' ',''})
  <INCLURE{fond=fenetre-sommaire}>
]
[(#ENV{skl}|=={skl_rubrique}|?{' ',''})
  <INCLURE{fond=fenetre-rubrique}{id_rubrique}>
]
[(#ENV{skl}|=={skl_article}|?{' ',''})
  <INCLURE{fond=fenetre-article}{id_article}>
]
[(#ENV{skl}|=={skl_galerie}|?{' ',''})
   <INCLURE{fond=fenetre-galerie}{id_article}{id_document}>
]
[(#ENV{skl}|=={skl_breve}|?{' ',''})
   <INCLURE{fond=fenetre-breve}{id_breve}>
]
  • en fonction du paramètre (#ENV{skl} passé par l’url, le squelette squelette.html va inclure des « noisettes » différentes

Avantages de la structure

Spip par essence permet de dissocier le fond de la forme, cette structure permet de prolonger cette notion, la forme (le style) est géré par le fichier squelette.html, le contenu par chacune des noisettes incluses (les boucles élémentaires).

L’avantage principal est ici la modularité, cette modularité facilitant la maintenance et l’évolution du site.

Un autre avantage est d’utilser les fichiers rubrique.html, article.html pour effectuer facilement des choix de squelette ainsi, si on souhaite pour certain articles afficher une galerie au lieu de l’article normal il suffiet de définir une nouvelle valeur pour skl comme sur le site.

Le fichier article.html contient :

<B_type-article>
<BOUCLE_type-article(ARTICLES){id_article}{titre_mot=galerie}>
<INCLURE{fond=squelette}{skl=skl_galerie}{id_article}{id_document}{style}{couleur}>
</BOUCLE_type-article>
</B_type-article>
<INCLURE{fond=squelette}{skl=skl_article}{id_article}{style}{couleur}>
<//B_type-article>

On voit que l’on passe soit le paramètre skl_article soit skl_galerie en fonction du mot clef galerie.

Sites exemples

sites en fonctionnement

squelette squelettes.html Remarques
post-it squelette.html Compte tenu de la forme de ce squelette, les div sont incluses dans les noisettes
S.I.I squelette.html Ici, le choix des noisettes à inclure se fait soit en fonction du paramètre skl, soit de l’id
Diapospip squelette.html squelette élémentaire utilsant la structure
Lycée Jacques Amyot squelette.html

Site expérimental
Multi Médic
sur ce site, il est possible de modifier la feuille de style et les « tons » du site à partir du même fichier squelette, en chargeant des feuilles de style différentes.

J’attends vos commentaires !!!

Dernière modification de cette page le 9 février 2019

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom