Lorsque je crée un squelette article propre à une rubrique (par ex. article-5.html), c’est parce que je veux que les articles de cette rubrique s’affichent selon une structure HTML différente de l’article générique répondant au squelette article.html. Mais si je veux simplement mettre en place une toute petite différence entre les articles de la rubrique 5 et les autres articles, n’y a-t-il pas une autre solution que de re-créer entièrement un clone de article.html sous le nom de article-5.html qui va contenir exactement le même code, sauf 2 lignes qui vont changer ?
Par exemple, si je veux simplement exclure l’exécution / interprétation d’un bloc
pour les articles de la rubrique 5, et pour ceux-là seulement, que puis-je écrire dans mon squelette article.html pour demander à SPIP de ne pas traiter ce bloc lorsque l’article dépend de l’ID_RUBRIQUE=5 ? ou encore si je veux simplement que ce bloc ne soit pas exécuté quand ID_ARTICLE=112 ? L’idée est d’éviter de cloner article.html indéfiniment (en créant ici article-5.html) pour de si petites différences ?
Ou, inversement, que faire dans mon squelette article.html pour demander à SPIP d’exécuter mon
seulement quand l’ID_RUBRIQUE de l’article est ID_RUBRIQUE=5, ou encore quand ID_ARTICLE=112 ?
Je suis sûr qu’il y a truc simple à faire pour cela, mais je ne vois pas quoi.
L’idée est de réduire le nombre de squelettes total, ce qui est avantageux par exemple dans le cas d’un site multilingue par secteurs.
Lorsque je crée un squelette article propre à une rubrique (par ex. article-5.html), c'est parce que je veux que les articles de cette rubrique s'affichent selon une structure HTML différente de l'article générique répondant au squelette article.html. Mais si je veux simplement mettre en place une toute petite différence entre les articles de la rubrique 5 et les autres articles, n'y a-t-il pas une autre solution que de re-créer entièrement un clone de article.html sous le nom de article-5.html qui va contenir exactement le même code, sauf 2 lignes qui vont changer ?
Par exemple, si je veux simplement exclure l'exécution / interprétation d'un bloc <div> pour les articles de la rubrique 5, et pour ceux-là seulement, que puis-je écrire dans mon squelette article.html pour demander à SPIP de ne pas traiter ce bloc lorsque l'article dépend de l'ID_RUBRIQUE=5 ? ou encore si je veux simplement que ce bloc ne soit pas exécuté quand ID_ARTICLE=112 ? L'idée est d'éviter de cloner article.html indéfiniment (en créant ici article-5.html) pour de si petites différences ?
Ou, inversement, que faire dans mon squelette article.html pour demander à SPIP d'exécuter mon <div> seulement quand l'ID_RUBRIQUE de l'article est ID_RUBRIQUE=5, ou encore quand ID_ARTICLE=112 ?
Merci, ça marche ! Avec ce code, le fichier inclus n’est en effet exécuté que lorsqu’il s’agit d’un article appartenant à la rubrique n° 5. Cool.
Si je veux que ça marche pour plusieurs rubriques (pas seulement la 5, mais aussi 7 et 9 par exemple), y a-t-il une syntaxe particulière ? pour l’instant, je me contente de copier/coller plusieurs fois cette instruction en changeant le n° de rubrique et ça marche, mais y a peut-être mieux.
Pour que je puisse à l’avenir développer et enrichir selon mes besoins ce type d’instructions, peux-tu expliquer le sens des filtres utilisés (je suis pas très bon en filtres). Je comprends le sens de =={5} qui veut dire « pour une rubrique égale à 5 » mais pour le reste, je ne comprends pas très bien : tu as ajouté un filtre "?{sioui,sinon} ? pourquoi ?
Merci, ça marche ! Avec ce code, le fichier inclus n’est en effet exécuté que lorsqu’il s’agit d’un article appartenant à la rubrique n° 5. Cool.
Si je veux que ça marche pour plusieurs rubriques (pas seulement la 5, mais aussi 7 et 9 par exemple), y a-t-il une syntaxe particulière ? pour l’instant, je me contente de copier/coller plusieurs fois cette instruction en changeant le n° de rubrique et ça marche, mais y a peut-être mieux.
l’idée serait donc de vérifier alors si l’id_rubrique en question peuple un array ou non : #SET{montablo,#GET{montablo,#ARRAY{}}} #SET{montablo,#GET{montablo,#ARRAY{0,5,1,7,2,9}}}
[(#ID_RUBRIQUE|in_array{#GET{montablo}}|?{’ ‹ , ›'})mon inclure]
à vérifier quand même
Pour que je puisse à l’avenir développer et enrichir selon mes besoins ce type d’instructions, peux-tu expliquer le sens des filtres utilisés (je suis pas très bon en filtres). Je comprends le sens de =={5} qui veut dire « pour une rubrique égale à 5 » mais pour le reste, je ne comprends pas très bien : tu as ajouté un filtre "?{sioui,sinon} ? pourquoi ?
C’est la syntaxe que je maîtrise le mieux. qui offre l’avantage de pouvoir gérer aisément le cas opposé (quand la balise id_rubrique ne vaut pas 5). Mais c’est vrai que l’on pourrait l’écrire différemment.
Est ce que ce genre de chose (inclusion dans une rubrique spécifique) serait possible en précisant une rubrique qui n'est pas forcément la mère, mais peut etre la grand mère ?
Peut etre, mais je vois que id_parent est pour la boucle rubriques, ça veut dire que je dois englober mon bout de code dans une boucle rubriques, qui effectue alors mon code normal en testant l'idparent c'est ça ?
englober peut-être pas mais au moins obtenir des infos sur lesquelles raisonner
par exemple dans une boucle article tu pourrais simplement écrire :
<BOUCLE_ousuisje(RUBRIQUES){id_rubrique}> #SET{grandmere,#ID_PARENT}
</BOUCLE_ousuisje>
(ou récupérer grand-mère de l'environnement s'il est possible de le transmettre par ce canal.)
Ensuite toujours dans une boucle article tu peux inclure un bout de code conditionnellement :