3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 // Les fonctions de toggg pour faire du JSON
18 * Transform a variable into its javascript equivalent (recursive)
20 * @param mixed the variable
21 * @return string js script | boolean false if error
24 // http://doc.spip.org/@var2js
25 function var2js($var) {
30 case is_string($var) :
31 return '"' .addcslashes($var, "\"\\\n\r/") . '"';
33 return $var ?
'true' : 'false';
34 case is_scalar($var) :
36 case is_object( $var) :
37 $var = get_object_vars($var);
40 $keys = array_keys($var);
42 while (!$asso && $ikey--) {
43 $asso = $ikey !== $keys[$ikey];
48 foreach ($var as $key => $elt) {
49 $ret .= $sep . '"' . $key . '":' . var2js($elt);
55 foreach ($var as $elt) {
56 $ret .= $sep . var2js($elt);
65 if(!function_exists('json_encode')) {
66 function json_encode($v) { return var2js($v); }
69 // http://doc.spip.org/@json_export
70 function json_export($var) {
71 $var = json_encode($var);
73 // flag indiquant qu'on est en iframe et qu'il faut proteger nos
74 // donnees dans un <textarea> ; attention $_FILES a ete vide par array_pop
75 if (defined('FILE_UPLOAD'))
76 return "<textarea>".htmlspecialchars($var)."</textarea>";