Convention d’échange de squelette

Quel est le Webmestre qui n’a pas eu besoin un jour de faire une variante de rubrique ou de toute autre page de son site ? Ensuite se pose la question de faire partager cette variante.

Un moyen simple de partage est le fichier séparé, un squelette de page, plutôt qu’un morceau de code à insérer quelque part. Spip le permet de plusieurs manières :

-  avec un numéro de rubrique comme dans article-XX.html, rubrique=XX.html

-  de manière indirecte avec boucle et mot-clé : si le squelette de page invoqué est flanqué d’un certain mot-clé, la boucle pourra inclure le squelette spécialisé (la variante) au lieu du squelette standard.

Malheureusement cette dernière solution n’est pas normalisée , d’où cette proposition de convention d’échange entre fournisseur de squelette et client. Elle permettra d’intégrer immédiatement des squelettes de page dans des squelettes de site.

Convention

Ce qui est indiqué ci-après pour les articles est transposable à n’importe quel autre squelette de page (rubrique , brève...). La version de Spip minimum est 1.8.2e.

Coté fournisseur

-  donner un nom si possible unique à la variante ; par exemple walma3

-  nommer le squelette d’après le nom de variante soit très exactement : article-walma3.html (on aurait de manière analogue rubrique-walma3.html pour une rubrique

-  éviter d’utiliser la balise #SELF si la variante doit se référencer elle-même (cas des squelettes ayant à transférer des paramètres). En effet, #SELF irait référencer article.html au lieu de article-walma3.html. A la place de #SELF il faudra donc désigner la page de manière explicite soit directement (page.php3 ?fond=article-walma3) soit par la balise #PAGE{walma3} si l’on a besoin d’utiliser des filtres.

-  joindre le code de la balise #PAGE si besoin

Coté client

En condition préalable, le site client devra comporter :

-  une boucle de sélection de variante dans article.html
-  le cas échéant, le code de #PAGE dans mes_fonctions.php3

Cette préparation, décrite en annexe, sera à faire une fois et permettra d’accueillir plusieurs variantes.

On mettra en service une variante simplement en :

-  créant le mot clé walma3
-  déposant article-walma3.html dans son dossier squelettes

Après quoi les rédacteurs n’auront plus qu’à opter pour la variante avec un simple ajout de mot-clé à leur article

Annexe

Exemple de sélecteur

Un exemple de code pour la sélection de variante dans article.html. Ici on a choisi de regrouper les mots-clés de variante dans un groupe _Article pour lequel il est conseillé de cocher le choix d’unicité.

<BOUCLE_extension (ARTICLES){id_article}{type_mot==_Article}>
        [(#REM) Appel d'une variante ]
        <BOUCLE_ext(MOTS){id_article}{type=_Article}{0,1}>
                <INCLURE(page.php3){fond=article-#TITRE}{id_article}{debut_page}>
        </BOUCLE_ext>
</BOUCLE_extension>


.... le squelette standard d'article.....



<//B_extension>

On voit bien ici : article-#TITRE comment est construit le nom de variante, avec #TITRE comme nom du mot clé associé à l’article.

On peut faire la boucle de manière différente, l’essentiel étant de déclencher l’inclusion du bon squelette avec le mot-clé.

La balise #PAGE

Le code de la balise #PAGE à insérer facultativement dans mes_fonctions.php3. Cette balise ne préjuge pas du type de squelette et fonctionnera aussi bien pour des rubriques, brèves etc.

function balise_PAGE($p) {
   if ($a = $p->param) {
       $sinon = array_shift($a);
       if  (!array_shift($sinon)) {
         $p->fonctions = $a;
         array_shift( $p->param );
         $nom = array_shift($sinon);
         $nom = ($nom[0]->type=='texte') ? $nom[0]->texte : "";
       }
   }
   if (!$nom) {
       // #PAGE sans argument : idem #SELF
       $p->code = 'quote_amp($GLOBALS["clean_link"]->getUrl())';
   } else {
       ereg("\?(.*)$", quote_amp($GLOBALS["clean_link"]->getUrl()), $regs);
       $p->code = '\'page.php3?fond='.$nom.'&'.$regs[1].'\'';
   }
   $p->statut = 'php';
   return $p;
}

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

Dernière modification de cette page le 26 mai 2007