2
0
forked from Wavyzz/dolibarr

New: add dol_json_encode and dol_json_decode instead

serialize/unserialize
This commit is contained in:
Regis Houssin
2012-03-02 17:48:05 +01:00
parent 30c7bf811b
commit 034b0fc4d4
3 changed files with 29 additions and 3 deletions

View File

@@ -165,7 +165,7 @@ class Conf
$varname = $partname.'_modules'; // TODO deprecated
if (! is_array($this->$varname)) { $this->$varname = array(); } // TODO deprecated
if (! is_array($this->modules_parts[$partname])) { $this->modules_parts[$partname] = array(); }
$arrValue = @unserialize($value);
$arrValue = dol_json_decode($value,true);
if (is_array($arrValue) && ! empty($arrValue)) $value = $arrValue;
else if (in_array($partname,array('login','menus','triggers'))) $value = '/'.$modulename.'/core/'.$partname.'/';
else if (in_array($partname,array('models'))) $value = '/'.$modulename.'/';

View File

@@ -145,6 +145,32 @@ if (! function_exists('json_decode'))
}
}
/**
* Function that encodes data in json format
*
* @param mixed $elements PHP object to json encode
* @return string Json encoded string
*/
function dol_json_encode($elements)
{
return json_encode($elements);
}
/**
* Function that decodes data from json format
*
* @param string $json Json encoded to PHP Object or Array
* @param bool $assoc False return an object, true return an array
* @return mixed Object or Array
*/
function dol_json_decode($json, $assoc=false)
{
$out='';
$out = unserialize($json); // For compatibility, test if serialized
if (empty($out)) $out = json_decode($json, $assoc);
return $out;
}
/**
* Function to return value of a static property when class
* name is dynamically defined (not hard coded).

View File

@@ -1277,12 +1277,12 @@ abstract class DolibarrModules
// Can defined other parameters
if (is_array($value['data']) && ! empty($value['data']))
{
$newvalue = serialize($value['data']);
$newvalue = dol_json_encode($value['data']);
if (isset($value['entity'])) $entity = $value['entity'];
}
else
{
$newvalue = serialize($value);
$newvalue = dol_json_encode($value);
}
}