phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.13


From: nomail
Subject: [Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.13
Date: Wed, 16 Jun 2004 17:13:32 +0200

Update of /api/interface
Modified Files:
        Branch: proposal-branch
          class.interface_xmlrpc.php

date: 2004/06/16 15:13:32;  author: dcech;  state: Exp;  lines: +38 -57

Log Message:
major fixes in generated message format
=====================================================================
Index: api/interface/class.interface_xmlrpc.php
diff -u api/interface/class.interface_xmlrpc.php:1.1.2.12 
api/interface/class.interface_xmlrpc.php:1.1.2.13
--- api/interface/class.interface_xmlrpc.php:1.1.2.12   Fri Apr 16 20:59:49 2004
+++ api/interface/class.interface_xmlrpc.php    Wed Jun 16 15:13:32 2004
@@ -30,7 +30,7 @@
                var $op;
                var $inputs;
                var $method_result;
-               var $indent = '';
+               var $indent = '  ';
                var $first_input = true;
                
                function api_interface()
@@ -147,13 +147,13 @@
 
                        if(!empty($this->method_result))
                        {
-                               $response_packet .= "<params>\n";
+                               $response_packet .= 
str_repeat($this->indent,1)."<params>\n";
 
                                if(!is_array($this->method_result))
                                {
-                                       $response_packet .= "<param>\n";
-                                       $response_packet .=  
$this->add_vars($this->method_result);
-                                       $response_packet .= "</param>\n";
+                                       $response_packet .= 
str_repeat($this->indent,2)."<param>\n";
+                                       $response_packet .= 
$this->add_vars($this->method_result,3);
+                                       $response_packet .= 
str_repeat($this->indent,2)."</param>\n";
                                }
                                else
                                {
@@ -162,24 +162,24 @@
                                                $num = 
count($this->method_result);
                                                for ($i=0; $i < $num; $i++)
                                                {
-                                                       $response_packet .= 
"<param>\n";
-                                                       $response_packet .=  
$this->add_vars($this->method_result[$i]);
-                                                       $response_packet .= 
"</param>\n";
+                                                       $response_packet .= 
str_repeat($this->indent,2)."<param>\n";
+                                                       $response_packet .= 
$this->add_vars($this->method_result[$i],3);
+                                                       $response_packet .= 
str_repeat($this->indent,2)."</param>\n";
                                                }
                                        }
                                        else
                                        {
-                                               $response_packet .= "<param>\n";
-                                               $response_packet .= "<value>\n";
-                                               $response_packet .= 
$this->add_vars($this->method_result);
-                                               $response_packet .= 
"</value>\n";
-                                               $response_packet .= 
"</param>\n";
+                                               $response_packet .= 
str_repeat($this->indent,2)."<param>\n";
+                                               $response_packet .= 
str_repeat($this->indent,3)."<value>\n";
+                                               $response_packet .= 
$this->add_vars($this->method_result,4);
+                                               $response_packet .= 
str_repeat($this->indent,3)."</value>\n";
+                                               $response_packet .= 
str_repeat($this->indent,2)."</param>\n";
                                        }
                                }
-                               $response_packet .= "</params>\n";
+                               $response_packet .= 
str_repeat($this->indent,1)."</params>\n";
                        }
                        
-                       $response_packet .= "</methodResponse>";
+                       $response_packet .= '</methodResponse>';
                        
                        return $this->output($response_packet);
                }
@@ -428,55 +428,36 @@
                        }
                }
 
-               function add_vars($params)
+               function add_vars($params,$level = 0)
                {
                        if(!is_array($params))
                        {
-                               $result =  
"<value>".$this->add_params_type_handler($params)."</value>\n";
+                               return 
str_repeat($this->indent,$level).'<value>'.$this->add_params_type_handler($params)."</value>\n";
                        }
-                       else
+                       
+                       if(array_key_exists(0,$params) || empty($params))
                        {
-                               if(array_key_exists(0,$params))
+                               $result = 
str_repeat($this->indent,$level)."<array>\n";
+                               $result .= 
str_repeat($this->indent,$level+1)."<data>\n";
+                               foreach ($params as $val)
                                {
-                                       $num = count($params);
-                                       $result = "<array>\n<data>\n";
-                                       for ($i=0; $i < $num; $i++)
-                                       {
-                                               if(is_array($params[$i]))
-                                               {
-                                                       $result .= 
$this->add_vars($params[$i]);
-                                               }
-                                               else
-                                               {
-                                                       $result .= 
"<value>".$this->add_params_type_handler($params[$i])."</value>\n";
-                                               }
-                                       }
-                                       
-                                       $result .= "</data>\n</array>\n";
+                                       $result .= 
$this->add_vars($val,$level+2);
                                }
-                               else
+                               
+                               $result .= 
str_repeat($this->indent,$level+1)."</data>\n";
+                               $result .= 
str_repeat($this->indent,$level)."</array>\n";
+                       }
+                       else
+                       {
+                               $result = 
str_repeat($this->indent,$level)."<struct>\n";
+                               foreach ($params as $key => $val)
                                {
-                                       $result = "<struct>\n";
-                                       foreach($params as $key=>$val)          
                
-                                       {
-                                               if(is_array($val))
-                                               {
-                                                       $result .= 
$this->add_vars($val);
-                                               }
-                                               else
-                                               {
-                                                       $result .= "<member>\n";
-                                                       $result .= 
"<name>".$key."</name>\n";
-                                                       $result .= 
"<value>".$this->add_params_type_handler($val)."</value>\n";
-                                                       $result .= 
"</member>\n";
-                                               }
-                                       }
-                                       $result .= "</struct>\n";
-                                       /* Im not clear why its double 
struct'ing, but it is and this is how I fixed it for now /*
-                                       /* If you dont like this hack, fix it.  
Dan*/
-                                       $result = str_replace 
("<struct>\n<struct>\n", "<struct>\n", $result); 
-                                       $result = str_replace 
("</struct>\n</struct>\n", "</struct>\n", $result); 
+                                       $result .= 
str_repeat($this->indent,$level+1)."<member>\n";
+                                       $result .= 
str_repeat($this->indent,$level+2)."<name>".$key."</name>\n";
+                                       $result .= 
$this->add_vars($val,$level+2);
+                                       $result .= 
str_repeat($this->indent,$level+1)."</member>\n";
                                }
+                               $result .= 
str_repeat($this->indent,$level)."</struct>\n";
                        }
                        return $result;
                }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]