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
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
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
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
#INCLUDEsi 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 :