guiderdoni.net

Bloc notes : spip, css, xhtml, web, standards, mac ...

Accueil du site > Spip > Un squelette spécifique pour un article grâce aux filtres de test

Articles de cette rubrique

Articles

publie le mardi 13 février 2007 par Alexandra

Un squelette spécifique pour un article grâce aux filtres de test

Objectif :

Soit une rubrique spéciale qui a l’id rubrique=26.
Un squelette spéciale pour les articles de la dite rubrique : article=26
Dans cette rubrique plusieurs articles, id 52, id 53, id 54 etc... On veut une page spéciale pour l’article id 52 seulement.

Solutions

1. Pour ce genre de choses, la gestion des squelettes par mot clé est une bonne solution.

Cf le plugin squelette par mot clé.

2. Faire un squelette article-toto.html pour l’article spécifique à l’id 52

Dans article=26.html, squelette des articles de la rubrique 26, mettre uniquement les lignes de codes qui suivent.

Avoir un squelette article.html

Syntaxe donnée sur user par Spipcarto
Un squelette spécifique pour un article grâce aux filtres de test En old-style :

[(#ENV{id_article}|choixsiegal{52,' ',''})
<INCLURE{fond=article-toto}{id_article}>]

[(#ENV{id_article}|choixsiegal{52,'',' '})
<INCLURE{fond=article}{id_article}>]

- En new style

[(#ENV{id_article}|=={'339'}|?{' ',''})
     <INCLURE{fond=article-toto}{id_article}>]

[(#ENV{id_article}|=={'339'}|?{'',' '})
<INCLURE{fond=article}{id_article}>]

Attention : Penser à donner le contexte de l’inclure en passant les paramètres que l’on doit "propager" : {id_article}{self=#SELF}

Explications données par Job

Grâce au premier filtre (#ENV{id_article}|=={'52}|?{' ',''}) renvoie un espace (cad quelque chose de différent de rien) si id_article = 52 et rien si id_article est différent de 52.

Le petit "espace" a pour effet d’activer le <INCLURE{fond=article-carte}>

La second filtre est exactement l’inverse

Boucle conditionnelle en fonction d’une rubrique

Dans ce type de filtres conditionnels, une boucle ne passe pas. Il fait mettre cette boucle dans un inclure.

[(#ID_RUBRIQUE|=={7}|?{' ',''})
[(#INCLURE{fond=inc-truc}{id_rubrique})]
]

Voir aussi l’article un squelette spécifique pour un article isolé et son forum pour les versions antérieures de SPIP 1.9.


Plus d’info sur les filtres de tests

La doc officielle

L’excellent article de Cent20

Un très bon article de Yoann sur le filtres sioui sinon et filtres de test

- Les traitements conditionnels avec SPIP :
Excellent article de bb.

- Filtres de test sur un ou plusieurs documents attachés à l’article


Forum

Répondre à cet article

2 commentaires

Un squelette spécifique pour un article grâce aux filtres de test

Toggg sur user proposait également ceci.

Tu pourrais séparer le corps des articles, du moins ce qui diffère entre normal et 3445 dans 2 sous-squelettes, mettons corps-article.html et corps-3445.html que tu inclues conditionnelement dans ton article.html grâce à un test sur id_article

Eventuellement aussi en SPIP 1.9, on peut utiliser #INCLUDE si les délais des pages sont les mêmes, dans ce cas il doit même être possible de mettre les includes directement dans le test, sauf erreur :

Un squelette spécifique pour un article grâce aux filtres de test

Bonjour,

J’ai testé la contribution et elle fonctionne bien pour l’article en question, mais les autres articles de la même rubrique ne s’affichent plus "Impossible d’afficher la page " !

Merci d’avance pour vos lumières !

2005-2008 - Contenu en GPL http://www.guiderdoni.net - Site réalisé avec SPIP  1.9.2c
rechercher - plan du site - prive - webmaster@guiderdoni.net
CSS - XHTML - squelette