From e94a9fb5e4b6a2bc07e0bb4cf8ea35fc70c4bbf0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 10 May 2012 12:31:27 -0400
Subject: [PATCH] Merged revisions 3049-3051,3053-3054,3058,3070,3074-3077,3082,3086-3088,3091-3092,3094-3095 from stable branch.

---
 interface/lib/classes/functions.inc.php |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index b744e35..2fe7191 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -109,6 +109,46 @@
 		return $url;
 	}
 	
+    function json_encode($data) {
+		if(!function_exists('json_encode')){
+			switch ($type = gettype($data)){
+				case 'NULL':
+					return 'null';
+				case 'boolean':
+					return ($data ? 'true' : 'false');
+				case 'integer':
+				case 'double':
+				case 'float':
+					return $data;
+				case 'string':
+					return '"' . addslashes($data) . '"';
+				case 'object':
+					$data = get_object_vars($data);
+				case 'array':
+					$output_index_count = 0;
+					$output_indexed = array();
+					$output_associative = array();
+					foreach($data as $key => $value){
+						$output_indexed[] = $this->json_encode($value);
+						$output_associative[] = $this->json_encode($key) . ':' . $this->json_encode($value);
+						if($output_index_count !== NULL && $output_index_count++ !== $key){
+							$output_index_count = NULL;
+						}
+					}
+					if($output_index_count !== NULL){
+						return '[' . implode(',', $output_indexed) . ']';
+					} else {
+						return '{' . implode(',', $output_associative) . '}';
+					}
+				default:
+					return ''; // Not supported
+			}
+		} else {
+			return json_encode($data);
+		}
+    }
+
+	
 		
 }
 

--
Gitblit v1.9.1