aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-11-03 00:19:09 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-11-03 00:19:09 +0000
commitea9488f7f50515956fc62c4f066010b04c4c5502 (patch)
tree41ea2ac6a4881d34a7d589786205b98c7e7456c3
parent10d3c743b8e1342000dfd277ef03eec2291becf7 (diff)
downloadelgg-ea9488f7f50515956fc62c4f066010b04c4c5502.tar.gz
elgg-ea9488f7f50515956fc62c4f066010b04c4c5502.tar.bz2
standardized xml.php and fixed output of booleans in xml view
git-svn-id: http://code.elgg.org/elgg/trunk@3616 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--engine/lib/opendd.php2
-rw-r--r--engine/lib/plugins.php2
-rw-r--r--engine/lib/xml-rpc.php2
-rw-r--r--engine/lib/xml.php107
4 files changed, 59 insertions, 54 deletions
diff --git a/engine/lib/opendd.php b/engine/lib/opendd.php
index 16d5b4671..c582e6f77 100644
--- a/engine/lib/opendd.php
+++ b/engine/lib/opendd.php
@@ -344,7 +344,7 @@ function ODD_factory(XmlElement $element) {
*/
function ODD_Import($xml) {
// Parse XML to an array
- $elements = xml_2_object($xml);
+ $elements = xml_to_object($xml);
// Sanity check 1, was this actually XML?
if ((!$elements) || (!$elements->children)) {
diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php
index daa543365..be604606e 100644
--- a/engine/lib/plugins.php
+++ b/engine/lib/plugins.php
@@ -312,7 +312,7 @@ function get_plugin_name($mainfilename = false) {
function load_plugin_manifest($plugin) {
global $CONFIG;
- $xml = xml_2_object(file_get_contents($CONFIG->pluginspath . $plugin. "/manifest.xml"));
+ $xml = xml_to_object(file_get_contents($CONFIG->pluginspath . $plugin. "/manifest.xml"));
if ($xml) {
$elements = array();
diff --git a/engine/lib/xml-rpc.php b/engine/lib/xml-rpc.php
index 1e2167507..9c59b1deb 100644
--- a/engine/lib/xml-rpc.php
+++ b/engine/lib/xml-rpc.php
@@ -57,7 +57,7 @@
*/
private function parse($xml)
{
- $xml = xml_2_object($xml);
+ $xml = xml_to_object($xml);
// sanity check
if ((isset($xml->name)) && (strcasecmp($xml->name, "methodCall")!=0))
diff --git a/engine/lib/xml.php b/engine/lib/xml.php
index e0bb0b17a..cbc936555 100644
--- a/engine/lib/xml.php
+++ b/engine/lib/xml.php
@@ -44,23 +44,29 @@
$output = "";
- if (($n==0) || ( is_object($data) && !($data instanceof stdClass))) $output = "<$classname>";
-
- foreach ($vars as $key => $value)
- {
+ if (($n==0) || ( is_object($data) && !($data instanceof stdClass))) {
+ $output = "<$classname>";
+ }
+
+ foreach ($vars as $key => $value) {
$output .= "<$key type=\"".gettype($value)."\">";
- if (is_object($value))
+ if (is_object($value)) {
$output .= serialise_object_to_xml($value, $key, $n+1);
- else if (is_array($value))
+ } else if (is_array($value)) {
$output .= serialise_array_to_xml($value, $n+1);
- else
+ } else if (gettype($value) == "boolean") {
+ $output .= $value ? "true" : "false";
+ } else {
$output .= htmlentities($value);
+ }
$output .= "</$key>\n";
}
- if (($n==0) || ( is_object($data) && !($data instanceof stdClass))) $output .= "</$classname>\n";
+ if (($n==0) || ( is_object($data) && !($data instanceof stdClass))) {
+ $output .= "</$classname>\n";
+ }
return $output;
}
@@ -76,31 +82,36 @@
{
$output = "";
- if ($n==0) $output = "<array>\n";
+ if ($n==0) {
+ $output = "<array>\n";
+ }
- foreach ($data as $key => $value)
- {
+ foreach ($data as $key => $value) {
$item = "array_item";
- if (is_numeric($key))
+ if (is_numeric($key)) {
$output .= "<$item name=\"$key\" type=\"".gettype($value)."\">";
- else
- {
+ } else {
$item = $key;
$output .= "<$item type=\"".gettype($value)."\">";
}
- if (is_object($value))
+ if (is_object($value)) {
$output .= serialise_object_to_xml($value, "", $n+1);
- else if (is_array($value))
+ } else if (is_array($value)) {
$output .= serialise_array_to_xml($value, $n+1);
- else
+ } else if (gettype($value) == "boolean") {
+ $output .= $value ? "true" : "false";
+ } else {
$output .= htmlentities($value);
+ }
$output .= "</$item>\n";
}
- if ($n==0) $output = "</array>\n";
+ if ($n==0) {
+ $output = "</array>\n";
+ }
return $output;
}
@@ -112,7 +123,7 @@
*
* @param string $xml The XML.
*/
- function xml_2_object($xml)
+ function xml_to_object($xml)
{
$parser = xml_parser_create();
@@ -121,38 +132,32 @@
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parse_into_struct($parser, $xml, $tags);
- xml_parser_free($parser);
-
- $elements = array();
- $stack = array();
-
- foreach ($tags as $tag)
- {
+ xml_parser_free($parser);
+
+ $elements = array();
+ $stack = array();
+
+ foreach ($tags as $tag) {
$index = count($elements);
- if ($tag['type'] == "complete" || $tag['type'] == "open")
- {
- $elements[$index] = new XmlElement;
- $elements[$index]->name = $tag['tag'];
- $elements[$index]->attributes = $tag['attributes'];
- $elements[$index]->content = $tag['value'];
-
- if ($tag['type'] == "open")
- {
- $elements[$index]->children = array();
- $stack[count($stack)] = &$elements;
- $elements = &$elements[$index]->children;
- }
- }
-
- if ($tag['type'] == "close")
- {
- $elements = &$stack[count($stack) - 1];
- unset($stack[count($stack) - 1]);
- }
- }
-
- return $elements[0];
+ if ($tag['type'] == "complete" || $tag['type'] == "open") {
+ $elements[$index] = new XmlElement;
+ $elements[$index]->name = $tag['tag'];
+ $elements[$index]->attributes = $tag['attributes'];
+ $elements[$index]->content = $tag['value'];
+
+ if ($tag['type'] == "open") {
+ $elements[$index]->children = array();
+ $stack[count($stack)] = &$elements;
+ $elements = &$elements[$index]->children;
+ }
+ }
+
+ if ($tag['type'] == "close") {
+ $elements = &$stack[count($stack) - 1];
+ unset($stack[count($stack) - 1]);
+ }
+ }
+
+ return $elements[0];
}
-
-?> \ No newline at end of file