From 4c28d9c34f5f3e5ccbbed6dbb0ba08bc5235b53b Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Thu, 10 May 2012 12:24:12 -0400
Subject: [PATCH] - Added global search (FS#2210, FS#2146).

---
 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