X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fjson.php;fp=www%2Fecrire%2Finc%2Fjson.php;h=77837be874cd9232af0ec22437f991ebc8c218ef;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=49cce51a67cd3eb5b4da63e2353acb47460534fb;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/ecrire/inc/json.php b/www/ecrire/inc/json.php index 49cce51a..77837be8 100644 --- a/www/ecrire/inc/json.php +++ b/www/ecrire/inc/json.php @@ -3,40 +3,44 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2016 * + * Copyright (c) 2001-2017 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} // Les fonctions de toggg pour faire du JSON /** * Transform a variable into its javascript equivalent (recursive) + * * @access private * @param mixed the variable * @return string js script | boolean false if error */ -// http://doc.spip.org/@var2js +// http://code.spip.net/@var2js function var2js($var) { $asso = false; switch (true) { - case is_null($var) : + case is_null($var): return 'null'; - case is_string($var) : - return '"' .addcslashes($var, "\"\\\n\r/") . '"'; - case is_bool($var) : + case is_string($var): + return '"' . addcslashes($var, "\"\\\n\r/") . '"'; + case is_bool($var): return $var ? 'true' : 'false'; - case is_scalar($var) : + case is_scalar($var): return (string)$var; - case is_object( $var) : + case is_object($var):// blam $var = get_object_vars($var); $asso = true; - case is_array($var) : + // $var devient un array, on continue + case is_array($var): $keys = array_keys($var); $ikey = count($keys); while (!$asso && $ikey--) { @@ -49,35 +53,37 @@ function var2js($var) { $ret .= $sep . '"' . $key . '":' . var2js($elt); $sep = ','; } - return $ret ."}"; + + return $ret . '}'; } else { $ret = '['; foreach ($var as $elt) { $ret .= $sep . var2js($elt); $sep = ','; } - return $ret ."]"; + + return $ret . ']'; } } + return false; } -if(!function_exists('json_encode')) { - function json_encode($v) { return var2js($v); } +if (!function_exists('json_encode')) { + function json_encode($v) { + return var2js($v); + } } -// http://doc.spip.org/@json_export +// http://code.spip.net/@json_export function json_export($var) { $var = json_encode($var); // flag indiquant qu'on est en iframe et qu'il faut proteger nos // donnees dans un "; - else + if (defined('FILE_UPLOAD')) { + return ''; + } else { return $var; + } } - - - -?>