You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/10 16:31:49 UTC
svn commit: r1382880 -
/incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php
Author: solomax
Date: Mon Sep 10 14:31:49 2012
New Revision: 1382880
URL: http://svn.apache.org/viewvc?rev=1382880&view=rev
Log:
rest_service class is improved to return objects as expected
Modified:
incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php
Modified: incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php?rev=1382880&r1=1382879&r2=1382880&view=diff
==============================================================================
--- incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php (original)
+++ incubator/openmeetings/trunk/plugins/joomla/com_openmeetings_conference/admin/om_gateway/lib/openmeetings_rest_service.php Mon Sep 10 14:31:49 2012
@@ -25,7 +25,7 @@
class openmeetings_rest_service {
- function call($request,$returnAttribute="return"){
+ function call($request, $returnAttribute="return"){
// This will allow you to view errors in the browser
// Note: set "display_errors" to 0 in production
//ini_set('display_errors',1);
@@ -99,21 +99,71 @@ class openmeetings_rest_service {
if ($returnAttribute == "") {
//echo "XML".$xml."<br/>";
- return $dom;
+ return $this->getArray($dom);
} else {
$returnNodeList = $dom->getElementsByTagName($returnAttribute);
+ $ret = array();
foreach ($returnNodeList as $returnNode) {
- return $returnNode->nodeValue;
+ if ($returnNodeList->length == 1) {
+ return $this->getArray($returnNode);
+ } else {
+ $ret[] = $this->getArray($returnNode);
+ }
}
+ return $ret;
}
}
+ function getArray($node) {
+ if (is_null($node) || !is_object($node)) {
+ return $node;
+ }
+ $array = false;
+ /*
+ echo("!!!!!!!! NODE " . XML_TEXT_NODE
+ . " :: name = " . $node->nodeName
+ . " :: local = " . $node->localName
+ . " :: childs ? " . $node->hasChildNodes()
+ . " :: count = " . ($node->hasChildNodes() ? $node->childNodes->length : -1)
+ . " :: type = " . $node->nodeType
+ . " :: val = " . $node->nodeValue
+ . "\n");
+ /*
+ if ($node->hasAttributes()) {
+ foreach ($node->attributes as $attr) {
+ $array[$attr->nodeName] = $attr->nodeValue;
+ }
+ }
+ */
+ if ($node->hasChildNodes()) {
+ foreach ($node->childNodes as $childNode) {
+ if ($childNode->nodeType != XML_TEXT_NODE) {
+ if ($node->hasAttributes()) {
+ foreach ($node->attributes as $attr) {
+ if ($attr->localName == "nil") {
+ return null;
+ }
+ }
+ }
+ if ($childNode->childNodes->length == 1) {
+ $array[$childNode->localName] = $this->getArray($childNode);
+ } else {
+ $array[$childNode->localName][] = $this->getArray($childNode);
+ }
+ } else {
+ return $childNode->nodeValue;
+ //echo("!!!!!!!! TEXT " . $childNode->nodeValue . "\n");
+ //$array[$childNode->localName]
+ }
+ }
+ }
-
+ return $array;
+ }
+
function getError(){
return false;
-
}
function fault(){
@@ -121,4 +171,4 @@ class openmeetings_rest_service {
}
}
-?>
\ No newline at end of file
+?>