Salut de España :
J’ai patcher SPIP 1.7 aussi, mais le nouveau tag SPIP_PHP ne fonctionne pas, il affiche simplement le contenu du tag sur ma page.
<SPIP_PHP>$contexte['monparam'] = #ID_FORUM;</SPIP_PHP>
mais le code dans le cache est :
$retour .= '
<SPIP_PHP>$contexte[\'monparam\'] = ';
$retour .= $row[id_forum];
$retour .= ';</SPIP_PHP>
';
J’ai trouvé une autre manière pour transporter des variables a une boucle du niveau inferieur :
– Dans mes_fonctions.php3 :
function set_var_contexte($texte, $var, &$contexte) {
$contexte["$var"] = "$text";
return;
}
– Dans le squelette, (n’importe pas le profundite deaux boucles) :
<BOUCLE_forum(FORUMS) {id_article}...>
...
[(#ID_FORUM|set_var_contexte{'monparam', $contexte})]
...
<BOUCLE_discusion(FORUMS){id_forum=$monparam}...>
...
<BOUCLE_autre(FORUMS){id_forum=$monparam}...>
...
</BOUCLE_autre>
...
</BOUCLE_discusion>
...
<BOUCLE_forum>
Mais pour enlever des variables d’une boucle du niveau inferieur a une boucle du niveau superior,
c’est ne marche pas pourquoi le changements du contexte inferieur sont perdus aux fin de boucle.
Ainsi il fault :
– Dans mes_fonctions.php3 :
function set_var_global($text, $var) {
global $mon_contexte;
$mon_contexte["$var"] = "$text";
return;
}
function echo_var_global($void, $var) {
global $mon_contexte;
return $mon_contexte["$var"];
}
function set_var_contexte($texte, $var, &$contexte) {
$contexte["$var"] = "$text";
return;
}
– Dans le squelette (c’est marche aussi puor des boucles recursives) :
<BOUCLE_forum(FORUMS) {id_article}...>
...
[(#ID_FORUM|set_var_global{'monparam'})]
...
<BOUCLE_top(FORUMS) {id_enfant}>
[(#ID_FORUM|set_var_global{'monparam'})]
<BOUCLE_ascendente(boucle_top)>
</BOUCLE_ascendente>
</BOUCLE_top>
<!-- Ici, le #ID_FORUM il ne sert pas à n'importe quoi, seulement sert pour lancer le filtre -->
[(#ID_FORUM|echo_var_global{'monparam'}|set_var_contexte{'monparam', $contexte})]
...
<BOUCLE_discusion(FORUMS){id_forum=$monparam}...>
...
</BOUCLE_discusion>
...
<BOUCLE_forum>
C’est tout. C’est ne pas très elegant mais...
Salut et pardon pour mon fracaise
Jose M. Sánchez
Sevilla (España)