- Reverted yesterdays changes back to the orginal

- Fixed returning integer values of 0 loosing the value once the XML reponse is being created
This commit is contained in:
jengo 2001-11-13 21:03:24 +00:00
parent 7ab7c98412
commit ebe631bc10
2 changed files with 37 additions and 24 deletions

View File

@ -186,10 +186,10 @@
function build_resp($_res,$recursed=False) function build_resp($_res,$recursed=False)
{ {
if(is_array($_res)) if (is_array($_res))
{ {
@reset($_res); @reset($_res);
while(list($key,$val) = @each($_res)) while (list($key,$val) = @each($_res))
{ {
$ele[$key] = $this->build_resp($val,True); $ele[$key] = $this->build_resp($val,True);
} }
@ -197,14 +197,30 @@
} }
else else
{ {
$_type = (is_long($_res)?'int':gettype($_res)); $_type = (is_integer($_res)?'int':gettype($_res));
if($recursed) if ($recursed)
{ {
return CreateObject('phpgwapi.xmlrpcval',$_res,$_type); // Passing an integer of 0 to the xmlrpcval constructor results in the value being lost. (jengo)
if ($_type == 'int' && $_res == 0)
{
return CreateObject('phpgwapi.xmlrpcval','0',$_type);
}
else
{
return CreateObject('phpgwapi.xmlrpcval',$_res,$_type);
}
} }
else else
{ {
$this->resp_struct[] = CreateObject('phpgwapi.xmlrpcval',$_res,$_type); // Passing an integer of 0 to the xmlrpcval constructor results in the value being lost. (jengo)
if ($_type == 'int' && $_res == 0)
{
$this->resp_struct[] = CreateObject('phpgwapi.xmlrpcval','0',$_type);
}
else
{
$this->resp_struct[] = CreateObject('phpgwapi.xmlrpcval',$_res,$_type);
}
} }
} }
} }
@ -311,7 +327,7 @@
} }
else else
{ {
if (function_exists($dmap[$methName]['function'])) if(function_exists($dmap[$methName]['function']))
{ {
$code = '$r =' . $dmap[$methName]['function'] . '($m);'; $code = '$r =' . $dmap[$methName]['function'] . '($m);';
$code = ereg_replace(',,',",'',",$code); $code = ereg_replace(',,',",'',",$code);
@ -319,35 +335,31 @@
} }
else else
{ {
// phpgw mod - finally, execute the function call and return the values /* phpgw mod - finally, execute the function call and return the values */
$params = $GLOBALS['_xh'][$parser]['params'][0]; $params = $GLOBALS['_xh'][$parser]['params'][0];
$code = '$p = ' . $params . ';'; $code = '$p = ' . $params . ';';
if ($code != '$p = ;') eval($code);
{ $params = $p->getval();
eval($code);
$params = $p->getval();
}
// _debug_array($params); // _debug_array($params);
//$this->reqtoarray($params); $this->reqtoarray($params);
//_debug_array($this->req_array); //_debug_array($this->req_array);
if (ereg('^service',$method)) if(ereg('^service',$method))
{ {
$res = ExecMethod('phpgwapi.service.exec',array($service,$methName,$this->req_array)); $res = ExecMethod('phpgwapi.service.exec',array($service,$methName,$this->req_array));
} }
else else
{ {
// $res = ExecMethod($method,$this->req_array); $res = ExecMethod($method,$this->req_array);
$r = ExecMethod($method,$params);
} }
/* $res = ExecMethod($method,$params); */
// _debug_array($res);exit; /* _debug_array($res);exit; */
$this->resp_struct = array(); $this->resp_struct = array();
$this->build_resp($res); $this->build_resp($res);
//_debug_array($this->resp_struct); /*_debug_array($this->resp_struct); */
@reset($this->resp_struct); @reset($this->resp_struct);
// $r = CreateObject('phpgwapi.xmlrpcresp',CreateObject('phpgwapi.xmlrpcval',$this->resp_struct,'struct')); $r = CreateObject('phpgwapi.xmlrpcresp',CreateObject('phpgwapi.xmlrpcval',$this->resp_struct,'struct'));
// _debug_array($r); /* _debug_array($r); */
} }
} }
} }

View File

@ -23,11 +23,12 @@
var $me = array(); var $me = array();
var $mytype = 0; var $mytype = 0;
function xmlrpcval($val=-1, $type='') function xmlrpcval($val = -1, $type = '')
{ {
$this->me = array(); $this->me = array();
$this->mytype = 0; $this->mytype = 0;
if ($val!=-1 || $type!='')
if ($val != -1 || $type != '')
{ {
if ($type=='') if ($type=='')
{ {