Julien FALCONNET, Informaticien Indépendant
Accueil du site > Recettes Techniques > SPIP > SPIP : Analyse d’une metastructure de la DIST

SPIP : Analyse d’une metastructure de la DIST

mercredi 26 septembre 2007, par Julien Falconnet

Le jeu de squelettes par défaut de SPIP (appelé DIST) est riche en possibilités. Il est souvent possible d’obtenir exactement la présentation de vos rêves, avec quelques modifications seulement. Encore faut-il savoir où aller faire ces modifications et savoir en anticiper les effets secondaires. Pour cela il est nécessaire de voire clairement comment sont constitués les principaux squelettes.

 Objectif

Il s’agit de mieux comprendre la structure générale des squelettes de la DIST, en distinguant les constructions communes et les différences.

 Méthode

On se restreint aux principaux squelette et on cherche les éléments communs pour essayer de dégager une meta-structure commune à tous. Ensuite on s’intéresse aux parties variantes et particulières de chaque page. Cette analyse porte sur SPIP 1.9.2.

Les squelettes étudiés sont les plus communs : sommaire, rubrique, plan, forum, site.

 Structure générale

#CACHE{...}
... "parfois une mention de boucle"
<!DOCTYPE ...
<html...

<head>
<title>[(#NOM_SITE_SPIP|textebrut)]</title>

[<meta name="description" content=...
<INCLURE{fond=inc-head}>
</head>

<body class="...">
<div id="page">
[(#REM) Entete de la page + titre du site ]
<INCLURE{fond=inc-entete}>
[(#REM) Fil d'Ariane ]
<div id="hierarchie">
...
</div>
<div id="conteneur">
...
<div id="contenu">
...
</div><!-- fin contenu -->
[(#REM) Menu de navigation par rubriq
<INCLURE{fond=inc-rubriques}> ...
...
</div><!-- fin navigation -->
</div><!-- fin conteneur -->


[(#REM) Pied de page ]
<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
</div><!-- fin page -->

</body>
</html>

... "parfois la fin de la boucle de tete"

 Tableau de variations

Ce tableau propose une vision synthétique des constantes et des variation dans les squelettes. Une première colonne présente les constantes, les autres indiquent les variantes pour chaque squelette.

ConstantesVariations
#CACHE... sommaire :
rubrique : #CACHE7200
article : #CACHE86400
plan : #CACHE7200
forum : #CACHE3600
#HTTP_HEADER"Cache-Control : max-age=3600, must-revalidate"
site : #CACHE7200
sommaire : -
rubrique :<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}>
article :<BOUCLE_article_principal(ARTICLES) {id_article}>
plan : -
forum : -
site :<BOUCLE_site(SITES){id_syndic}>
<!DOCTYPE...
<html dir="#LANG_DIR" lang="#LANG"> sommaire :
rubrique : -
article : -
plan : -
forum : -
site :
[(#REM) Les sites n'ont pas de "lang" a proprement parler
<BOUCLE_lang(RUBRIQUES){id_rubrique}><br><html dir="#LANG_DIR" ...
<head>
<title>...</title> sommaire : <title>[(#NOM_SITE_SPIP|textebrut)]</title>       
rubrique :<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
article :<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
plan :<title><:plan_site:> - [(#NOM_SITE_SPIP|textebrut)]</title>
forum :<title><:poster_message:> - [(#NOM_SITE_SPIP|textebrut)]</tit
site :<title>[(#NOM_SITE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]
sommaire :[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|cou
rubrique :[<meta name="description" content="(#INTRODUCTION|couper{150}
article :[<meta name="description" content="(#INTRODUCTION|couper{150}
plan :[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|cou
forum : -
site :[<meta name="description" content="(#DESCRIPTIF|couper{150}|t
<INCLURE{fond=inc-head}> sommaire :
rubrique :
article :
plan :
forum :
site :
<body class="..."> sommaire :<body class="page_sommaire">
rubrique :<body class="page_rubrique">
article :<body class="page_article">
plan :<body class="page_plan">
forum :<body class="page_forum">
site :<body class="page_site">
<div id="page"> sommaire :
rubrique :
article :
plan :
forum :
site :
[(#REM) Entete de la page + titre du site ]
_ <INCLURE{fond=inc-entete}>
sommaire :
rubrique :
article :
plan :
forum :
site :
[(#REM) Fil d'Ariane ]
_ <div id="hierarchie">...</div>
sommaire :<div id="hierarchie"><:accueil_site:></div>
rubrique :<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu
article :<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu
plan :<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu
forum :voire source
site :<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu
<div id="contenu">...</div> sommaire :
[(#REM) Les deux derniers articles ]
...
[(#REM) Articles suivants ]
...<div class="contre-encart">         ....</div>...
<div class="encart">
[(#REM) Breves ]
... <div class="breves"> ...
[(#REM) Liens des forums ]
... <div class="forums"> ....
[(#REM) Sur le Web ]
... <div class="syndic"> ....
</div><!-- fin encart -->

rubrique :

<div class="cartouche">
...
<div class="#EDIT{texte} chapo">
...
<div class="contre-encart">
[(#REM) Articles de la rubriq
...
<div class="rubriques">
...
[(#REM) Documents joints a la
...
</div><!-- fin contre-encart -->
...
<div class="encart">
[(#REM) Breves du secteur ]
<div class="breves">
...
[(#REM) Sites de la rubrique
<div class="syndic">
...
[(#REM) Proposer un site ]
#FORMULAIRE_SITE
</div><!-- fin encart -->

article :

<div class="cartouche">
...
<div class="#EDIT{chapo} chapo">
...
<div class="#EDIT{texte} texte">
...
[(#REM) Portfolio : album d'images ]
...
<BOUCLE_afficher_document(DOCUMENTS)
...
[(#REM) Autres documents joints...
...
[(#REM) Petition...
...
[(#REM) Forum de l'article ]
...

plan :

<div class="cartouche">
...
[(#REM) Articles et sous-rubriques
...
<div class="encart">
...
[(#REM) Breves ]
...
[(#REM) Sur le Web ]
...
</div><!-- fin encart -->
...

forum :

<div class="cartouche">
...
<BOUCLE_forum_parent
...
<BOUCLE_article
...
<BOUCLE_breve
...
<BOUCLE_rubrique
...
#FORMULAIRE_FORUM
...

site :

<div class="cartouche">
...
[(#REM) Articles issus de la syndicat
...
</div><!-- fin contenu --> sommaire :
rubrique :
article :
plan :
forum :
site :
[(#REM) Menu de navigation laterale ]
<div id="navigation">
sommaire :
rubrique :
article :
plan :
forum :
site :
[(#REM) Menu de navigation par rubriq
<INCLURE{fond=inc-rubriques}>...
sommaire : -
rubrique :<INCLURE{fond=inc-rubriques}{id_rubrique}
article :<INCLURE{fond=inc-rubriques}{id_rubrique}
plan : -
forum : -
site :<INCLURE{fond=inc-rubriques}{id_rubrique}
... sommaire :
[(#REM) Inscription au site ]
#FORMULAIRE_INSCRIPTION
[(#REM) Menu de navigation mots-cles
<B_mots>...</B_mots>
[(#REM) Articles dans la meme rubriqu
...
[(#REM) Menu de navigation mots-cles
#MODELE{article_mots}

rubrique : -
article : -
plan :

[(#REM) Autres sites web ]
...
[(#REM) Menu de navigation mots-cles
...

forum : -
site : -

</div><!-- fin navigation -->
</div><!-- fin conteneur -->
[(#REM) Pied de page ]
<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
</div><!-- fin page -->
</body>
</html>
.. sommaire :
rubrique :</BOUCLE_rubrique_principal>
article :</BOUCLE_article_principal>
plan :
forum :
site :</BOUCLE_site>
Communsommairerubriquearticleplanforumsite
#CACHE... #CACHE7200 #CACHE7200 #CACHE86400 #CACHE7200 #CACHE3600
#HTTP_HEADER"Cache-Control : max-age=3600, must-revalidate"
#CACHE7200
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}> <BOUCLE_article_principal(ARTICLES) {id_article}> <BOUCLE_site(SITES){id_syndic}>
<!DOCTYPE...
<html dir="#LANG_DIR" lang="#LANG">
[(#REM) Les sites n'ont pas de "lang" a proprement parler
<BOUCLE_lang(RUBRIQUES){id_rubrique}><br><html dir="#LANG_DIR" ...
<head>
<title>...</title> <title>[(#NOM_SITE_SPIP|textebrut)]</title>        <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title> <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title> <title><:plan_site:> - [(#NOM_SITE_SPIP|textebrut)]</title> <title><:poster_message:> - [(#NOM_SITE_SPIP|textebrut)]</tit <title>[(#NOM_SITE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]
[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|cou [<meta name="description" content="(#INTRODUCTION|couper{150} [<meta name="description" content="(#INTRODUCTION|couper{150} [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|cou [<meta name="description" content="(#DESCRIPTIF|couper{150}|t
<INCLURE{fond=inc-head}>
<body class="..."> <body class="page_sommaire"> <body class="page_rubrique"> <body class="page_article"> <body class="page_plan"> <body class="page_forum"> <body class="page_site">
<div id="page">
[(#REM) Entete de la page + titre du site ]
<INCLURE{fond=inc-entete}>
[(#REM) Fil d'Ariane ]
<div id="hierarchie">...</div>
<div id="hierarchie"><:accueil_site:></div> <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu voire source <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accu
<div id="contenu">...</div>
[(#REM) Les deux derniers articles ]
...
[(#REM) Articles suivants ]
...<div class="contre-encart">         ....</div>...
<div class="encart">
[(#REM) Breves ]
... <div class="breves"> ...
[(#REM) Liens des forums ]
... <div class="forums"> ....
[(#REM) Sur le Web ]
... <div class="syndic"> ....
</div><!-- fin encart -->
<div class="cartouche">
...
<div class="#EDIT{texte} chapo">
...
<div class="contre-encart">
[(#REM) Articles de la rubriq
...
<div class="rubriques">
...
[(#REM) Documents joints a la
...
</div><!-- fin contre-encart -->
...
<div class="encart">
[(#REM) Breves du secteur ]
<div class="breves">
...
[(#REM) Sites de la rubrique
<div class="syndic">
...
[(#REM) Proposer un site ]
#FORMULAIRE_SITE
</div><!-- fin encart -->
<div class="cartouche">
...
<div class="#EDIT{chapo} chapo">
...
<div class="#EDIT{texte} texte">
...
[(#REM) Portfolio : album d'images ]
...
<BOUCLE_afficher_document(DOCUMENTS)
...
[(#REM) Autres documents joints...
...
[(#REM) Petition...
...
[(#REM) Forum de l'article ]
...
<div class="cartouche">
...
[(#REM) Articles et sous-rubriques
...
<div class="encart">
...
[(#REM) Breves ]
...
[(#REM) Sur le Web ]
...
</div><!-- fin encart -->
...
<div class="cartouche">
...
<BOUCLE_forum_parent
...
<BOUCLE_article
...
<BOUCLE_breve
...
<BOUCLE_rubrique
...
#FORMULAIRE_FORUM
...
<div class="cartouche">
...
[(#REM) Articles issus de la syndicat
...
</div><!-- fin contenu -->
[(#REM) Menu de navigation laterale ]
<div id="navigation">
[(#REM) Menu de navigation par rubriq
<INCLURE{fond=inc-rubriques}>...
<INCLURE{fond=inc-rubriques}{id_rubrique} <INCLURE{fond=inc-rubriques}{id_rubrique} <INCLURE{fond=inc-rubriques}{id_rubrique}
...
[(#REM) Inscription au site ]
#FORMULAIRE_INSCRIPTION
[(#REM) Menu de navigation mots-cles
<B_mots>...</B_mots>
[(#REM) Articles dans la meme rubriqu
...
[(#REM) Menu de navigation mots-cles
#MODELE{article_mots}
[(#REM) Autres sites web ]
...
[(#REM) Menu de navigation mots-cles
...
</div><!-- fin navigation -->
</div><!-- fin conteneur -->
[(#REM) Pied de page ]
<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
</div><!-- fin page -->
</body>
</html>
.. </BOUCLE_rubrique_principal> </BOUCLE_article_principal> </BOUCLE_site>

Répondre à cet article


Me contacter |Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette |