bug 1652 fixed: json_encode function is required for admin.php?fckb_tags=1

(used in the new tags widget)

git-svn-id: http://piwigo.org/svn/trunk@6126 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2010-05-08 19:22:29 +00:00
parent a34af69677
commit eb0aec9752
3 changed files with 54 additions and 33 deletions

View File

@@ -21,39 +21,6 @@
// | USA. |
// +-----------------------------------------------------------------------+
#_____________________ PHP 5.2
if (! function_exists('json_encode')) {
function json_encode($data) {
switch (gettype($data)) {
case 'boolean':
return ($data ? 'true' : 'false');
case 'null':
case 'NULL':
return 'null';
case 'integer':
case 'double':
return $data;
case 'string':
return '"'. str_replace(array("\\",'"',"/","\n","\r","\t"), array("\\\\",'\"',"\\/","\\n","\\r","\\t"), $data) .'"';
case 'object':
case 'array':
if ($data === array()) return '[]'; # empty array
if (range(0, count($data) - 1) !== array_keys($data) ) { # string keys, unordered, non-incremental keys, .. - whatever, make object
$out = "\n".'{';
foreach($data as $key => $value) {
$out .= json_encode((string) $key) . ':' . json_encode($value) . ',';
}
$out = substr($out, 0, -1) . "\n". '}';
}else{
# regular array
$out = "\n".'[' . join("\n".',', array_map('json_encode', $data)) ."\n".']';
}
return $out;
}
}
}
class PwgJsonEncoder extends PwgResponseEncoder
{
function encodeResponse($response)