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 $varname = $partname.'_modules'; // TODO deprecated
if (! is_array($this->$varname)) { $this->$varname = array(); } // TODO deprecated if (! is_array($this->$varname)) { $this->$varname = array(); } // TODO deprecated
if (! is_array($this->modules_parts[$partname])) { $this->modules_parts[$partname] = array(); } 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; 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('login','menus','triggers'))) $value = '/'.$modulename.'/core/'.$partname.'/';
else if (in_array($partname,array('models'))) $value = '/'.$modulename.'/'; 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 * Function to return value of a static property when class
* name is dynamically defined (not hard coded). * name is dynamically defined (not hard coded).

View File

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