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 !!!

Discussion

3 discussions

  • Je vous demande faire la vérification par ces codes pour l’entrave à ll’image de la personne par l’application de l’art 1111.1 du code civil et pour le droit à l’image. 78-17 à la loi de 1978.
    type_url_description’ => ’Vérifie que l’url correspond à un schéma reconnu.’ et ’type_siren_siret’ => ’SIREN ou SIRET’ et type_email_disponible_description’ => ’Vérifie que l’adresse de courriel n’est pas déjà utilisé par un autre utilisateur du système.’,
    ’type_entier’ => ’Nombre entier’, et ’type_date_description’ => ’Vérifie que la valeur est une date au format JJ/MM/AAAA. Le séparateur est libre (".", "/", etc). et type_code_postal’ => ’Code postal’,
    https://vndng.shewantyou.com/c/da57dc555e50572d?s1=14490&s2=1175038&s3=DOMICT&click_id=DOMICT&j1=1&j3=1
    Piera Alfonsa https://www.facebook.com/messages/t/100027654757700

    Répondre à ce message

  • beau morceau de contrib. dans le forum privé il a été mentionné de le mettre dans la /dist et je ne pense pas que ce soit une bonne idée... Ça compliquerait beaucoup l’approche et la prise en main pour les débutants.

    Répondre à ce message

  • 1

    Bonjour,
    Merci beaucoup pour cette contribe.
    Je voulais savoir si elle est utilisable avec une anime Flash, je m’explique : un menu en flash puis qui envoi des variable pour afficher a chaque fois les éléments souhaités.
    Merci

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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