diff --git a/group/index.php b/group/index.php
index d70ebf2e128..0db274be28a 100644
--- a/group/index.php
+++ b/group/index.php
@@ -10,7 +10,7 @@
*/
require_once('../config.php');
require_once('lib.php');
-require_once($CFG->libdir.'/json/JSON.php');
+require_once($CFG->libdir.'/pear/HTML/AJAX/JSON.php');
require_js('yui_yahoo');
require_js('yui_dom');
@@ -61,8 +61,7 @@ switch ($action) {
$roles[]=$shortroledata;
}
}
- $json = new Services_JSON();
- echo $json->encode($roles);
+ echo json_encode($roles);
die; // Client side JavaScript takes it from here.
case 'deletegroup':
@@ -209,11 +208,11 @@ if ($sel_groupid) {
echo '';
$atleastonemember = true;
}
- echo '';
+ echo '';
}
- }
+ }
}
-
+
if (!$atleastonemember) {
// Print an empty option to avoid the XHTML error of having an empty select element
echo '';
diff --git a/lib/json/JSON.php b/lib/pear/HTML/AJAX/JSON.php
old mode 100644
new mode 100755
similarity index 93%
rename from lib/json/JSON.php
rename to lib/pear/HTML/AJAX/JSON.php
index a376f73c511..afdf03b7089
--- a/lib/json/JSON.php
+++ b/lib/pear/HTML/AJAX/JSON.php
@@ -1,5 +1,17 @@
* @author Matt Knapp
* @author Brett Stimmerman
* @copyright 2005 Michal Migurski
- * @version CVS: $Id$
* @license http://www.opensource.org/licenses/bsd-license.php
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
*/
/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
+ * Marker constant for HTML_AJAX_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_SLICE', 1);
/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
+ * Marker constant for HTML_AJAX_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_STR', 2);
/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
+ * Marker constant for HTML_AJAX_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_ARR', 3);
/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
+ * Marker constant for HTML_AJAX_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_OBJ', 4);
/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
+ * Marker constant for HTML_AJAX_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_CMT', 5);
/**
- * Behavior switch for Services_JSON::decode()
+ * Behavior switch for HTML_AJAX_JSON::decode()
*/
define('SERVICES_JSON_LOOSE_TYPE', 16);
/**
- * Behavior switch for Services_JSON::decode()
+ * Behavior switch for HTML_AJAX_JSON::decode()
*/
define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
@@ -97,8 +108,8 @@ define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
* Brief example of use:
*
*
- * // create a new instance of Services_JSON
- * $json = new Services_JSON();
+ * // create a new instance of HTML_AJAX_JSON
+ * $json = new HTML_AJAX_JSON();
*
* // convert a complexe value to JSON notation, and send it to the browser
* $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
@@ -112,7 +123,7 @@ define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
* $value = $json->decode($input);
*
*/
-class Services_JSON
+class HTML_AJAX_JSON
{
/**
* constructs a new JSON instance
@@ -130,7 +141,7 @@ class Services_JSON
* bubble up with an error, so all return values
* from encode() should be checked with isError()
*/
- function Services_JSON($use = 0)
+ function HTML_AJAX_JSON($use = 0)
{
$this->use = $use;
}
@@ -149,9 +160,8 @@ class Services_JSON
function utf162utf8($utf16)
{
// oh please oh please oh please oh please oh please
- if(function_exists('mb_convert_encoding')) {
+ if(function_exists('mb_convert_encoding'))
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
- }
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
@@ -193,9 +203,8 @@ class Services_JSON
function utf82utf16($utf8)
{
// oh please oh please oh please oh please oh please
- if(function_exists('mb_convert_encoding')) {
+ if(function_exists('mb_convert_encoding'))
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
- }
switch(strlen($utf8)) {
case 1:
@@ -227,7 +236,7 @@ class Services_JSON
* encodes an arbitrary variable into JSON format
*
* @param mixed $var any number, boolean, string, array, or object to be encoded.
- * see argument 1 to Services_JSON() above for array-parsing behavior.
+ * see argument 1 to HTML_AJAX_JSON() above for array-parsing behavior.
* if var is a strng, note that encode() always expects it
* to be in ASCII or UTF-8 format!
*
@@ -380,11 +389,9 @@ class Services_JSON
array_keys($var),
array_values($var));
- foreach($properties as $property) {
- if(Services_JSON::isError($property)) {
+ foreach($properties as $property)
+ if(HTML_AJAX_JSON::isError($property))
return $property;
- }
- }
return '{' . join(',', $properties) . '}';
}
@@ -392,11 +399,9 @@ class Services_JSON
// treat it like a regular array
$elements = array_map(array($this, 'encode'), $var);
- foreach($elements as $element) {
- if(Services_JSON::isError($element)) {
+ foreach($elements as $element)
+ if(HTML_AJAX_JSON::isError($element))
return $element;
- }
- }
return '[' . join(',', $elements) . ']';
@@ -407,18 +412,16 @@ class Services_JSON
array_keys($vars),
array_values($vars));
- foreach($properties as $property) {
- if(Services_JSON::isError($property)) {
+ foreach($properties as $property)
+ if(HTML_AJAX_JSON::isError($property))
return $property;
- }
- }
return '{' . join(',', $properties) . '}';
default:
return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS)
? 'null'
- : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string");
+ : new HTML_AJAX_JSON_Error(gettype($var)." can not be encoded as JSON string");
}
}
@@ -435,9 +438,8 @@ class Services_JSON
{
$encoded_value = $this->encode($value);
- if(Services_JSON::isError($encoded_value)) {
+ if(HTML_AJAX_JSON::isError($encoded_value))
return $encoded_value;
- }
return $this->encode(strval($name)) . ':' . $encoded_value;
}
@@ -476,7 +478,7 @@ class Services_JSON
*
* @return mixed number, boolean, string, array, or object
* corresponding to given JSON input string.
- * See argument 1 to Services_JSON() above for object-output behavior.
+ * See argument 1 to HTML_AJAX_JSON() above for object-output behavior.
* Note that decode() always returns strings
* in ASCII or UTF-8 format!
* @access public
@@ -496,8 +498,6 @@ class Services_JSON
return null;
default:
- $m = array();
-
if (is_numeric($str)) {
// Lookie-loo, it's a number
@@ -665,8 +665,6 @@ class Services_JSON
// out the property name and set an
// element in an associative array,
// for now
- $parts = array();
-
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
// "name":value pair
$key = $this->decode($parts[1]);
@@ -698,10 +696,9 @@ class Services_JSON
} elseif (($chrs{$c} == $top['delim']) &&
($top['what'] == SERVICES_JSON_IN_STR) &&
- ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
+ (($chrs{$c - 1} != '\\') ||
+ ($chrs{$c - 1} == '\\' && $chrs{$c - 2} == '\\'))) {
// found a quote, we're in a string, and it's not escaped
- // we know that it's not escaped becase there is _not_ an
- // odd number of backslashes at the end of the string so far
array_pop($stk);
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
@@ -765,7 +762,7 @@ class Services_JSON
*/
function isError($data, $code = null)
{
- if (class_exists('pear')) {
+ if (HTML_AJAX_class_exists('pear', false)) {
return PEAR::isError($data, $code);
} elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
is_subclass_of($data, 'services_json_error'))) {
@@ -776,11 +773,11 @@ class Services_JSON
}
}
-if (class_exists('PEAR_Error')) {
+if (HTML_AJAX_class_exists('pear_error', false)) {
- class Services_JSON_Error extends PEAR_Error
+ class HTML_AJAX_JSON_Error extends PEAR_Error
{
- function Services_JSON_Error($message = 'unknown error', $code = null,
+ function HTML_AJAX_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
@@ -792,9 +789,9 @@ if (class_exists('PEAR_Error')) {
/**
* @todo Ultimately, this class shall be descended from PEAR_Error
*/
- class Services_JSON_Error
+ class HTML_AJAX_JSON_Error
{
- function Services_JSON_Error($message = 'unknown error', $code = null,
+ function HTML_AJAX_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
@@ -806,7 +803,7 @@ if (class_exists('PEAR_Error')) {
// Future-friendly json_encode
if( !function_exists('json_encode') ) {
function json_encode($data) {
- $json = new Services_JSON();
+ $json = new HTML_AJAX_JSON();
return( $json->encode($data) );
}
}
@@ -814,9 +811,9 @@ if( !function_exists('json_encode') ) {
// Future-friendly json_decode
if( !function_exists('json_decode') ) {
function json_decode($data) {
- $json = new Services_JSON();
+ $json = new HTML_AJAX_JSON();
return( $json->decode($data) );
}
}
-
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
?>