chregu Fri Mar 30 02:37:35 2001 EDT Modified files: /php4/pear/Experimental/XML sql2xml_ext.php Log: a lot of new customizable options.... too much to be listed here, documentation will follow. Index: php4/pear/Experimental/XML/sql2xml_ext.php diff -u php4/pear/Experimental/XML/sql2xml_ext.php:1.2 php4/pear/Experimental/XML/sql2xml_ext.php:1.3 --- php4/pear/Experimental/XML/sql2xml_ext.php:1.2 Thu Mar 29 13:26:53 2001 +++ php4/pear/Experimental/XML/sql2xml_ext.php Fri Mar 30 02:37:35 2001 @@ -15,7 +15,7 @@ // | Authors: Christian Stocker <[EMAIL PROTECTED]> | // +----------------------------------------------------------------------+ // -// $Id: sql2xml_ext.php,v 1.2 2001/03/29 21:26:53 uw Exp $ +// $Id: sql2xml_ext.php,v 1.3 2001/03/30 10:37:35 chregu Exp $ require_once ("XML/sql2xml.php"); @@ -41,7 +41,7 @@ * for the time being * * @author Christian Stocker <[EMAIL PROTECTED]> - * @version $Id: sql2xml_ext.php,v 1.2 2001/03/29 21:26:53 uw Exp $ + * @version $Id: sql2xml_ext.php,v 1.3 2001/03/30 10:37:35 chregu Exp $ */ class XML_sql2xml_ext extends XML_sql2xml { @@ -49,11 +49,12 @@ function insertNewRow($parent_row, $res, $key, &$tableInfo) { - $new_row = $parent_row->new_child("row", NULL); + $new_row= $parent_row->new_child($tableInfo[$key]["table"],Null); /* make an unique ID attribute in the row element with tablename.id if there's an id otherwise just make an unique id with the php-function, just that there's a unique id for this row. CAUTION: This ID changes every time ;) (if no id from db-table) */ + $new_row->set_attribute("type","row"); if ($res[$tableInfo["id"][$tableInfo[$key]["table"]]]) { if ($res[$tableInfo["id"][$tableInfo[$key]["table"]]] == $this->user_options[id]) @@ -64,7 +65,9 @@ } else { - $new_row->set_attribute("ID", uniqid($tableInfo[$key]["table"])); + $this->IDcounter[$tableInfo[$key]["table"]]++; + $new_row->set_attribute("ID", +$tableInfo[$key]["table"].$this->IDcounter[$tableInfo[$key]["table"]]); + } return $new_row; @@ -72,21 +75,27 @@ function insertNewResult(&$tableInfo) { - + + if ($this->user_options["result_root"]) + $result_root = $this->user_options["result_root"]; + else + $result_root = $tableInfo[0]["table"]; + if ($this->xmlroot) - $xmlroot=$this->xmlroot->new_child($tableInfo[0]["table"], NULL); + $xmlroot=$this->xmlroot->new_child($result_root,Null); else - $xmlroot= $this->xmldoc->add_root($tableInfo[0]["table"]); - - $xmlroot->set_attribute("type", "Database"); - + $xmlroot= $this->xmldoc->add_root($result_root); + $xmlroot->set_attribute("type","resultset"); return $xmlroot; } function insertNewElement($parent, $res, $key, &$tableInfo, &$subrow) { - if ($this->user_options["xml_seperator"]) + if (is_array($this->user_options["attributes"]) && +in_array($tableInfo[$key]["name"],$this->user_options["attributes"])) { + +$subrow=$parent->set_attribute($tableInfo[$key]["name"],$this->xml_encode($res[$key])); + } + elseif ($this->user_options["xml_seperator"]) { //the preg should be only done once.... $i = 0; @@ -100,24 +109,23 @@ $subrow[$regs[1][$i]] = $subrow[$regs[1][$i - 1]]->new_child($regs[1][$i], NULL); } } - $subrows = $subrow[$regs[1][$i - 1]]->new_child($regs[1][$i], utf8_encode($res[$key])); + $subrows = $subrow[$regs[1][$i - 1]]->new_child($regs[1][$i], +$this->xml_encode($res[$key])); } else { - $regs[1][0] = $tableInfo[$key]["name"]; - $i = 0; - $subrow=$parent->new_child($regs[1][$i], utf8_encode($res[$key])); + $subrow=$parent->new_child($tableInfo[$key]["name"], +$this->xml_encode($res[$key])); } } function addTableinfo($key, $value, &$tableInfo) { - - if (!$metdata["id"][$value[table]] && $value[name] == $this->user_options["element_id"] ) + if (!$tableInfo[id][$value["table"]] && $value["name"] == +$this->user_options["element_id"] ) { - $tableInfo["id"][$value["table"]] = $key; + $tableInfo[id][$value["table"]]= $key; } - + if ($this->user_options["field_translate"][$value["name"]]) { + $tableInfo[$key]["name"] = +$this->user_options["field_translate"][$value["name"]]; + } } } ?> -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]