[SPIP Zone] r4136 - in /_plugins_/_boucles_/boucles_xml: base/xml_temporaire.php xml_fonctions.php

Author: cedric@yterium.com
Date: Fri Jul 21 21:04:02 2006
New Revision: 4136

Log:
recuperer le nom du xml dans les where si il y est, et le xpath inclut le noeud concerné

Modified:
    _plugins_/_boucles_/boucles_xml/base/xml_temporaire.php
    _plugins_/_boucles_/boucles_xml/xml_fonctions.php

Modified: _plugins_/_boucles_/boucles_xml/base/xml_temporaire.php

--- _plugins_/_boucles_/boucles_xml/base/xml_temporaire.php (original)
+++ _plugins_/_boucles_/boucles_xml/base/xml_temporaire.php Fri Jul 21 21:04:02 2006
@@ -78,14 +78,14 @@
       # ."VALUES (".spip_abstract_quote($file).",".spip_abstract_quote($xpath).",".spip_abstract_quote($noeud).",".spip_abstract_quote($texte).",".spip_abstract_quote($attrs).",'feuille')");
       $id = spip_abstract_insert('spip_xml',
         "(xml,xpath,noeud,texte,attributs,id_parent,statut)",
- "(".spip_abstract_quote($file).",".spip_abstract_quote($xpath).",".spip_abstract_quote($noeud).",".spip_abstract_quote($texte).",".spip_abstract_quote($attrs).",$id_parent,'noeud')"
+ "(".spip_abstract_quote($file).",".spip_abstract_quote("$xpath$noeud").",".spip_abstract_quote($noeud).",".spip_abstract_quote($texte).",".spip_abstract_quote($attrs).",$id_parent,'noeud')"
         );
     }
     else{
       // c'est un noeud
       $id = spip_abstract_insert('spip_xml',
         "(xml,xpath,noeud,texte,attributs,id_parent,statut)",
- "(".spip_abstract_quote($file).",".spip_abstract_quote($xpath).",".spip_abstract_quote($noeud).",".spip_abstract_quote($texte).",".spip_abstract_quote($attrs).",$id_parent,'noeud')"
+ "(".spip_abstract_quote($file).",".spip_abstract_quote("$xpath$noeud").",".spip_abstract_quote($noeud).",".spip_abstract_quote($texte).",".spip_abstract_quote($attrs).",$id_parent,'noeud')"
         );
       #spip_query("REPLACE INTO spip_xml "
       # ."(xml,xpath,noeud,texte,attributs,statut) "

Modified: _plugins_/_boucles_/boucles_xml/xml_fonctions.php

--- _plugins_/_boucles_/boucles_xml/xml_fonctions.php (original)
+++ _plugins_/_boucles_/boucles_xml/xml_fonctions.php Fri Jul 21 21:04:02 2006
@@ -14,11 +14,31 @@
   $id_table = $boucle->id_table;
   $boucle->from[$id_table] = "spip_xml";
   $boucle->select[] = $boucle->id_table.".xpath";
- $boucle->hash = '
+
+ // on regarde dans les where si xml est specifie explicitement
+ $_xml = '';
+ foreach($boucle->where as $w){
+ if ($w[0]=="'='" && $w[1]=="'xml.xml'")
+ {
+ $_xml=$w[2];
+ break;
+ }
+ }
+ if ($_xml==''){
+ $champ = new Champ;
+ $champ->nom_champ = 'xml';
+ $_xml = calculer_liste(array($champ),array(), $boucles, $boucle->$id_boucle);
+ }
+ if ($_xml!='')
+ $boucle->hash = "
   // CREER la table temporaire xml et la peupler avec le resultat du parser
- xml_fill_table_temporaire_boucle(spip_abstract_quote($Pile[$SP]["xml"]));
-';
+ if (is_string(\$x=$_xml))
+ xml_fill_table_temporaire_boucle(\$x);
+";
   return calculer_boucle($id_boucle, $boucles);
}

+function extraire($attributs,$nom){
+ return extraire_attribut("<fake $attributs>",$nom);
+}
?>
\ No newline at end of file