Salut
J'ai un problème assez étonnant avec la conception d'un squelette en y
inserant des bloc conditionnels php (if else).
J'ai des catégories associées à des mots clé, et je souhaite les exclure de
la boucle rubrique. J'utilise donc le critère doublon, en faisant une boucle
vide avec les rubriques à exclure. Ensuite, j'exécute la boucle rubrique
avec le critère doublon de manière à ne pas afficher les rubriques
précédemment listées.
Un petit exemple pour illustrer :
<BOUCLE_exclure_intra(RUBRIQUES){tout} {titre_mot=intranet} {doublons}>
</BOUCLE_exclure_intra>
<BOUCLE_rubriques(RUBRIQUES) {racine} {!lang_select} {doublons} {par num
titre, titre}>
<li>#TITRE</li>
</BOUCLE_rubriques>
Avec cet exemple, je liste donc toutes les rubriques, sauf celles qui ont le
mot clé "intranet" associé. Cela fonctionne.
Maintenant, sur le même principe, je souhaite changer les rubriques à
exclure en fonction du statut de l'utilisateur (admin, redac, invité). Je
fais donc mes boucles doublons dans des blocs conditionnels :
<?
if ($GLOBALS['auteur_session']['statut'] == '0minirezo')
{
?>
<BOUCLE_exclure_intra(RUBRIQUES){tout} {titre_mot=intranet}
{doublons}>intranet exclus
</BOUCLE_exclure_intra>
<?
}else{
?>
<BOUCLE_exclure_extra(RUBRIQUES){tout} {titre_mot=extranet}
{doublons}>extranet exclus
</BOUCLE_exclure_extra>
<? } ?>
Ce code est donc censé exclure les rubriques ayant pour mot clé intranet au
cas où le statut est admin, et le mot clé extranet sinon.
Et là, ca ne fonctionne pas, il semble que les 2 boucles soient constamment
exécutées, quel que soit le résultat du if, même si elles n'affichent rien.
En effet, si je suis admin, spip affiche bien "intranet exclus" et pas
"extranet exclus", mais il exclut quand même les rubriques extranet !! Si je
supprime la boucle extranet, les rubriques extranet réapparaissent, ce qui
laisse supposé que le bloc conditionnel else est exécuté, or il ne l'est pas
(vérifié par des echo).
Donc les boucles semblent être exécutées même si le code php dit que non. Le
parseur de spip exécute quand même la boucle, charge le critère doublon, et
donc n'affiche pas les rubriques en question dans la boucle rubrique.
Voilà, j'espère que j'ai su exposer mon problème et que quelqu'un pourra me
répondre. Je devrais peut-être poster ca sur la liste de dev, mais je ne
sais pas où on s'inscrit !
Merci d'avoir lu mon roman !
Ben