issue 2119. supporting php 5.4. display classes.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12687 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2013-02-04 09:48:05 +00:00
parent 41fdaf00c3
commit 1de3e9cd17
6 changed files with 258 additions and 117 deletions

View file

@ -1,6 +1,8 @@
<?php
class XMLDisplayHandler
{
/**
* Produce XML compliant content given a module object.\n
* @param ModuleObject $oModule the module object
@ -10,9 +12,9 @@ class XMLDisplayHandler
{
$variables = $oModule->getVariables();
$xmlDoc = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<response>\n";
$xmlDoc .= sprintf("<error>%s</error>\n",$oModule->getError());
$xmlDoc .= sprintf("<message>%s</message>\n",str_replace(array('<','>','&'),array('&lt;','&gt;','&amp;'),$oModule->getMessage()));
$xmlDoc = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<response>\n";
$xmlDoc .= sprintf("<error>%s</error>\n", $oModule->getError());
$xmlDoc .= sprintf("<message>%s</message>\n", str_replace(array('<', '>', '&'), array('&lt;', '&gt;', '&amp;'), $oModule->getMessage()));
$xmlDoc .= $this->_makeXmlDoc($variables);
@ -26,22 +28,39 @@ class XMLDisplayHandler
* @param object $obj
* @return string
*/
function _makeXmlDoc($obj) {
if(!count($obj)) return;
function _makeXmlDoc($obj)
{
if(!count($obj))
{
return;
}
$xmlDoc = '';
foreach($obj as $key => $val)
{
if(is_numeric($key)) $key = 'item';
if(is_numeric($key))
{
$key = 'item';
}
if(is_string($val)) $xmlDoc .= sprintf('<%s><![CDATA[%s]]></%s>%s', $key, $val, $key,"\n");
else if(!is_array($val) && !is_object($val)) $xmlDoc .= sprintf('<%s>%s</%s>%s', $key, $val, $key,"\n");
else $xmlDoc .= sprintf('<%s>%s%s</%s>%s',$key, "\n", $this->_makeXmlDoc($val), $key, "\n");
if(is_string($val))
{
$xmlDoc .= sprintf('<%s><![CDATA[%s]]></%s>%s', $key, $val, $key, "\n");
}
else if(!is_array($val) && !is_object($val))
{
$xmlDoc .= sprintf('<%s>%s</%s>%s', $key, $val, $key, "\n");
}
else
{
$xmlDoc .= sprintf('<%s>%s%s</%s>%s', $key, "\n", $this->_makeXmlDoc($val), $key, "\n");
}
}
return $xmlDoc;
}
}
/* End of file XMLDisplayHandler.class.php */
/* Location: ./classes/display/XMLDisplayHandler.class.php */