bonjour,
J'utilise SPIP 1.4.2 sur une SuSE 7.3, MySQL 3.23.41 et PHP 4.0.6.
Dans le fichier mes_fonctions.php3 j'ai forcé la valeur de
$GLOBALS["debut_intertitre"] et $GLOBALS["fin_intertitre"].
Mais dans certains squelettes je souhaiterais modifier ces valeurs.
Conformément à la doc, j'initialise dans <squelettes>.php3 les variables
"$debut_intertitre" et "$fin_intertitre".
Ces modifications ne sont pas prises en compte, apparemment les valeurs
données dans $GLOBALS sont prioritaires et non modifiables.
J'ai modifié le contenu de la fonction tester_variable dans inc_texte.php3 de
la façon suivante (j'ai ajouté les instructions "global" et le premier "if"):
function tester_variable($nom_var, $val){
global ${$nom_var};
global $GLOBALS;
if (isset(${$nom_var})) $GLOBALS[$nom_var] = $$nom_var;
else {
if (! isset($GLOBALS[$nom_var])
OR $_GET[$nom_var] OR
$GLOBALS['HTTP_GET_VARS'][$nom_var]
OR $_PUT[$nom_var] OR
$GLOBALS['HTTP_PUT_VARS'][$nom_var]
OR $_POST[$nom_var] OR
$GLOBALS['HTTP_POST_VARS'][$nom_var]
OR $_COOKIE[$nom_var] OR
$GLOBALS['HTTP_COOKIE_VARS'][$nom_var]
OR $_REQUEST[$nom_var]
)
$GLOBALS[$nom_var] = $val;
}
}
Je sais que l'usage de variables dynamiques rend cette version incompatible
avec PHP3, et qu'on peut s'y prendre autrement. Mais je n'en suis pas encore
là. En tout cas, ça, ne marche pas: dans cette fonction, la variable
$debut_intertitre et sa consoeur sont vides. A quel moment ont-elles été
remises à blanc?
En fait, coup de grep, je n'ai trouvé nulle part ou ces variables étaient
initialisées.
J'avoue que je sèche un peu. Quelqu'un peut me donner un tuyau?
Merci d'avance.
Ph.