1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-03 21:27:25 +02:00

Issue #3524 XML import/export array issue.

This commit is contained in:
Cameron
2018-11-15 14:20:08 -08:00
parent 747776b66a
commit e0d988aaeb
3 changed files with 7 additions and 12 deletions

View File

@@ -536,13 +536,13 @@ class e_array {
* *
* @param array $ArrayData array to be stored * @param array $ArrayData array to be stored
* @param bool|string $mode true = var_export with addedslashes, false = var_export (default), 'json' = json encoded * @param bool|string $mode true = var_export with addedslashes, false = var_export (default), 'json' = json encoded
* @return string * @return null|string
*/ */
public function serialize($ArrayData, $mode = false) public function serialize($ArrayData, $mode = false)
{ {
if (!is_array($ArrayData) || empty($ArrayData)) if (!is_array($ArrayData) || empty($ArrayData))
{ {
return false; return null;
} }
if($mode === 'json') if($mode === 'json')

View File

@@ -1763,11 +1763,6 @@ class e107
*/ */
public static function serialize($ArrayData, $mode = false) public static function serialize($ArrayData, $mode = false)
{ {
if(empty($ArrayData))
{
return array();
}
return self::getArrayStorage()->serialize($ArrayData, $mode); return self::getArrayStorage()->serialize($ArrayData, $mode);
} }

View File

@@ -863,8 +863,12 @@ class xmlClass
if(is_array($val)) if(is_array($val))
{ {
// $val = "<![CDATA[".e107::serialize($val,false)."]]>";
$val = e107::serialize($val,false); $val = e107::serialize($val,false);
if($val === null)
{
return '<![CDATA[array ()]]>';
}
} }
if($this->convertFilePaths) if($this->convertFilePaths)
@@ -873,15 +877,11 @@ class xmlClass
$val = preg_replace_callback("#({e_.*?\.(".$types."))#i", array($this,'replaceFilePaths'), $val); $val = preg_replace_callback("#({e_.*?\.(".$types."))#i", array($this,'replaceFilePaths'), $val);
} }
if((strpos($val,"<")!==FALSE) || (strpos($val,">")!==FALSE) || (strpos($val,"&")!==FALSE)) if((strpos($val,"<")!==FALSE) || (strpos($val,">")!==FALSE) || (strpos($val,"&")!==FALSE))
{ {
return "<![CDATA[". $val."]]>"; return "<![CDATA[". $val."]]>";
} }
$val = str_replace(chr(1),'{\u0001}',$val); $val = str_replace(chr(1),'{\u0001}',$val);
return $val; return $val;