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