Josiane ALETTO a écrit :
je cherche comment m'en passer en utilisant des modéles ( j'ai remplacé quelques article-XX par des modéles) ou autre chose mais sans revenir à du php3..
ca c'est un bon exemple !
Depuis Spip 1.7.2, je fais du squelette par mot clé avec ... un squelette.
Ce squelette s'est largement simplifié avec les GET et les SET d'ailleurs.
J'ai un groupe "_sq_squelettes" avec des mots du genre "_large", "_agenda", ...
En 1.9.2, voila ce que ca donne pour rubrique.html:
#CACHE{7*24*3600}
<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}>
<BOUCLE_MOT_SQUELETTE(MOTS){id_rubrique}{type=_sq_squelettes}{0,1}>
#SET{sq_squelette,rubrique#TITRE}
</BOUCLE_MOT_SQUELETTE>
#SET{sq_squelette,rubrique}
<BOUCLE_HIERARCHIE(HIERARCHIE){inverse}>
<BOUCLE_MOT_SQUELETTE_PARENT(MOTS){id_rubrique}{type=_sq_squelettes}{0,1}>
[(#GET{sq_squelette}|=={rubrique}|?{' ',''})
#SET{sq_squelette,rubrique#TITRE}
]
</BOUCLE_MOT_SQUELETTE_PARENT>
</BOUCLE_HIERARCHIE>
<//B_MOT_SQUELETTE>
<INCLURE{fond=#GET{sq_squelette}}{id_rubrique}{self=#SELF}>
</BOUCLE_rubrique_principal>
Avec un mot "_sq_squelettes:_agenda" sur la rubrique ou un de ses parents, c'est rubrique_agenda.html qui est appelée.
Attention par contre à passer tous les parametres necessaires à l'inclusion.
en 1.9.3, ca donnera :
<INCLURE{fond=#GET{sq_squelette}}{env}>
Chaque nouvelle version apporte son lot de simplification.
@++
PS : pour l'article, ca doit donner
#CACHE{7*24*3600}
<BOUCLE_MOT_ARTICLE(MOTS){id_article}{type=_sq_squelettes}{0,1}>
#SET{sq_squelette,article#TITRE}
</BOUCLE_MOT_ARTICLE>
#SET{sq_squelette,article}
<BOUCLE_ART(ARTICLES){id_article}>
<BOUCLE_HIERARCHIE(HIERARCHIE){inverse}>
<BOUCLE_MOT_SQUELETTE_PARENT(MOTS){id_rubrique}{type=_sq_squelettes}{0,1}>
[(#GET{sq_squelette}|=={#TETRIS_TEMPLATE/article}|?{' ',''})
#SET{sq_squelette,#TETRIS_TEMPLATE/article#TITRE}
]
</BOUCLE_MOT_SQUELETTE_PARENT>
</BOUCLE_HIERARCHIE>
</BOUCLE_ART>
<//B_MOT_ARTICLE>
<INCLURE{fond=#GET{sq_squelette}}{id_article}{self=#SELF}>
PS2 : rien de tout cela n'est testé, comme d'ab, mais sauf faute de frappe, ca doit etre ca.