[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.17
From: |
nomail |
Subject: |
[Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.17 |
Date: |
Wed, 16 Jun 2004 18:42:28 +0200 |
Update of /api/interface
Modified Files:
Branch: proposal-branch
class.interface_xmlrpc.php
date: 2004/06/16 16:42:28; author: dcech; state: Exp; lines: +38 -47
Log Message:
* improved robustness of add_vars and added support for objects
* added htmlentities encoding to all strings to allow embedding of markup in
returned values
=====================================================================
Index: api/interface/class.interface_xmlrpc.php
diff -u api/interface/class.interface_xmlrpc.php:1.1.2.16
api/interface/class.interface_xmlrpc.php:1.1.2.17
--- api/interface/class.interface_xmlrpc.php:1.1.2.16 Wed Jun 16 16:15:36 2004
+++ api/interface/class.interface_xmlrpc.php Wed Jun 16 16:42:28 2004
@@ -422,62 +422,53 @@
function add_vars($params,$level = 0)
{
- if(!is_array($params))
- {
- $result =
str_repeat($this->indent,$level)."<value>\n";
- $result .=
str_repeat($this->indent,$level+1).$this->add_params_type_handler($params)."\n";
- $result .=
str_repeat($this->indent,$level)."</value>\n";
- }
- elseif(empty($params) || reset(array_keys($params)) ===
0)
- {
- $result =
str_repeat($this->indent,$level)."<value>\n";
- $result .=
str_repeat($this->indent,$level+1)."<array>\n";
- $result .=
str_repeat($this->indent,$level+2)."<data>\n";
- foreach ($params as $val)
- {
- $result .=
$this->add_vars($val,$level+3);
- }
-
- $result .=
str_repeat($this->indent,$level+2)."</data>\n";
- $result .=
str_repeat($this->indent,$level+1)."</array>\n";
- $result .=
str_repeat($this->indent,$level)."</value>\n";
- }
- else
- {
- $result =
str_repeat($this->indent,$level)."<value>\n";
- $result .=
str_repeat($this->indent,$level+1)."<struct>\n";
- foreach ($params as $key => $val)
- {
- $result .=
str_repeat($this->indent,$level+2)."<member>\n";
- $result .=
str_repeat($this->indent,$level+3)."<name>".$key."</name>\n";
- $result .=
$this->add_vars($val,$level+3);
- $result .=
str_repeat($this->indent,$level+2)."</member>\n";
- }
- $result .=
str_repeat($this->indent,$level+1)."</struct>\n";
- $result .=
str_repeat($this->indent,$level)."</value>\n";
- }
- return $result;
- }
-
- function add_params_type_handler($param)
- {
- switch(gettype($param))
+ $result = str_repeat($this->indent,$level)."<value>\n";
+
+ switch(gettype($params))
{
case 'boolean':
- return '<boolean>'.$param.'</boolean>';
+ $result .=
str_repeat($this->indent,$level+1).'<boolean>'.$params."</boolean>\n";
break;
case 'double':
- return '<double>'.$param.'</double>';
+ $result .=
str_repeat($this->indent,$level+1).'<double>'.$params."</double>\n";
break;
case 'integer':
- return '<i4>'.$param.'</i4>';
+ $result .=
str_repeat($this->indent,$level+1).'<i4>'.$params."</i4>\n";
+ break;
+ case 'string':
+ $result .=
str_repeat($this->indent,$level+1).'<string>'.htmlentities($params)."</string>\n";
break;
case 'array':
- //need to handle this
+ if(empty($params) ||
reset(array_keys($params)) === 0)
+ {
+ $result .=
str_repeat($this->indent,$level+1)."<array>\n";
+ $result .=
str_repeat($this->indent,$level+2)."<data>\n";
+ foreach ($params as $val)
+ {
+ $result .=
$this->add_vars($val,$level+3);
+ }
+
+ $result .=
str_repeat($this->indent,$level+2)."</data>\n";
+ $result .=
str_repeat($this->indent,$level+1)."</array>\n";
+ break;
+ }
+ case 'object':
+ $result .=
str_repeat($this->indent,$level+1)."<struct>\n";
+ foreach ($params as $key => $val)
+ {
+ $result .=
str_repeat($this->indent,$level+2)."<member>\n";
+ $result .=
str_repeat($this->indent,$level+3)."<name>".$key."</name>\n";
+ $result .=
$this->add_vars($val,$level+3);
+ $result .=
str_repeat($this->indent,$level+2)."</member>\n";
+ }
+ $result .=
str_repeat($this->indent,$level+1)."</struct>\n";
break;
- default:
- return '<string>'.$param.'</string>';
+ default: // ignore resources, NULL, functions
or unknown types
+ return '';
}
+
+ $result .=
str_repeat($this->indent,$level)."</value>\n";
+ return $result;
}
function system_listMethods()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.17,
nomail <=