Critères optionnels et passage automatique de #ENV dans les modèles
Un exemple sera plus simple :
j'avais sous SPIP 2.1 un modèles sites.html de la forme suivante :
[(#LOGO_RUBRIQUE|image_reduire{100}|inserer_attribut{alt,#TITRE}|inserer_attribut{class,''}sinon{#TITRE})]
Je pouvais l'appeler soit via :
<sites|>
et dans ce cas j'avais les sites de toutes les rubriques, soit via <sites|id_rubrique=1>
et cela me permettait d'avoir les sites de la rubrique 1.
Patatra, avec SPIP 3 cette option saute (avec ZPIP). En effet j'ai un id_rubrique dans le squelette appelant, j'ai donc un id_rubrique dans le modèle (selon la nouvelle règle de transmissions des #ENV aux modèles à SPIP 3).
La solution que j'ai trouvé pour le moment (mais pas top) est
/B_sans_id>[(#LOGO_RUBRIQUE|image_reduire{100}|inserer_attribut{alt,#TITRE}|inserer_attribut{class,''}sinon{#TITRE})]
Mais c'est moche. Il faudrait trouver un système plus pratique. Sur IRC (avec cerdic et denisb), denisb a suggéré
[(#LOGO_RUBRIQUE|image_reduire{100}|inserer_attribut{alt,#TITRE}|inserer_attribut{class,''}sinon{#TITRE})]
Sauf que comme le précise http://www.spip.net/fr_article4013.html : « Le critère ne sera pris en compte par la boucle que si une variable de même nom est présente dans l’environnement. »