[spip-dev] Bug dans inc_import.php3

La fonction "import_objet( )" permet d'entrer dans la base une entité Spip
(rubrique, article, ...) codée en XML de façon adhoc (cf dump.xml).

L'erreur est que la fonction "import_objet( )" n'initialise pas les
variables utilisées pour lire le fichier xml contenant l'entité à charger.
Dans le contexte d'une restauration de la base complète, pas de pb.
Mais dans le cas de l'utilisation de cette function par exemple pour entrer
des données existant avant le basculement du site vers Spip, seul le premier
appel à la fonction marche, les autres étant ineffectifs (pointeur de
fichier restant sur la balise de fin /SPIP du traitement précédant).

Pour corriger le pb, il m'a suffit d'ajouter en tête de la fonction
"import_objet( )", la raz des variables utilisées par les fonctions de
décodage du xml:

  function import_objet($f, $gz = false) {
    global $buf, $pos, $abs_pos; // cf function xml_fetch_tag
    $buf=''; $pos=''; $abs_pos='';
return import_objet_1_2($f, $gz);
}

Peut-on inclure cette modif dans la 1.4 ?
Cordialement
   François

PS: Quid de la fonction "import_objet_0_0( )" ?

Cette partie, c'est Antoine le spécialiste. Et Antoine est en vacances.

ARNO*

Salut,

L'erreur est que la fonction "import_objet( )" n'initialise pas les
variables utilisées pour lire le fichier xml contenant l'entité à charger.
Dans le contexte d'une restauration de la base complète, pas de pb.

Ce n'est pas une erreur, puisque cette fonction est susceptible d'être
appelée plusieurs fois. Il faut donc initialiser les variables à
l'extérieur, i.e. dans ton programme avant l'appel de la fonction.

Amicalement

Antoine.