From 269b746df44ff16cec4eb68a1ea7f1cd34b8475e Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 18 Apr 2011 09:10:39 -0400
Subject: [PATCH] Merged revision 2308 from stable branch.
---
interface/lib/classes/tform_actions.inc.php | 1
interface/web/remote/monitor.php | 68 +++++++++++++++++++++++++++++++++
2 files changed, 68 insertions(+), 1 deletions(-)
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 81a78e1..f1978ff 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -322,6 +322,7 @@
}
$this->onAfterDelete();
+ $app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_after_delete',$this);
}
//header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
diff --git a/interface/web/remote/monitor.php b/interface/web/remote/monitor.php
index 230ace8..c7a69f6 100644
--- a/interface/web/remote/monitor.php
+++ b/interface/web/remote/monitor.php
@@ -55,6 +55,72 @@
}
$out['type'] = $type;
-echo json_encode($out);
+function __json_encode($data) {
+ if( is_array($data) || is_object($data) ) {
+ $islist = is_array($data) && ( empty($data) || array_keys($data) === range(0,count($data)-1) );
+
+ if( $islist ) {
+ $json = '[' . implode(',', array_map('__json_encode', $data) ) . ']';
+ } else {
+ $items = Array();
+ foreach( $data as $key => $value ) {
+ $items[] = __json_encode("$key") . ':' . __json_encode($value);
+ }
+ $json = '{' . implode(',', $items) . '}';
+ }
+ } elseif( is_string($data) ) {
+ # Escape non-printable or Non-ASCII characters.
+ # I also put the \\ character first, as suggested in comments on the 'addcslashes' page.
+ $string = '"' . addcslashes($data, "\\\"\n\r\t/" . chr(8) . chr(12)) . '"';
+ $json = '';
+ $len = strlen($string);
+ # Convert UTF-8 to Hexadecimal Codepoints.
+ for( $i = 0; $i < $len; $i++ ) {
+
+ $char = $string[$i];
+ $c1 = ord($char);
+
+ # Single byte;
+ if( $c1 <128 ) {
+ $json .= ($c1 > 31) ? $char : sprintf("\\u%04x", $c1);
+ continue;
+ }
+
+ # Double byte
+ $c2 = ord($string[++$i]);
+ if ( ($c1 & 32) === 0 ) {
+ $json .= sprintf("\\u%04x", ($c1 - 192) * 64 + $c2 - 128);
+ continue;
+ }
+
+ # Triple
+ $c3 = ord($string[++$i]);
+ if( ($c1 & 16) === 0 ) {
+ $json .= sprintf("\\u%04x", (($c1 - 224) <<12) + (($c2 - 128) << 6) + ($c3 - 128));
+ continue;
+ }
+
+ # Quadruple
+ $c4 = ord($string[++$i]);
+ if( ($c1 & 8 ) === 0 ) {
+ $u = (($c1 & 15) << 2) + (($c2>>4) & 3) - 1;
+
+ $w1 = (54<<10) + ($u<<6) + (($c2 & 15) << 2) + (($c3>>4) & 3);
+ $w2 = (55<<10) + (($c3 & 15)<<6) + ($c4-128);
+ $json .= sprintf("\\u%04x\\u%04x", $w1, $w2);
+ }
+ }
+ } else {
+ # int, floats, bools, null
+ $json = strtolower(var_export( $data, true ));
+ }
+ return $json;
+}
+
+if(function_exists('json_encode')) { // PHP >= 5.2
+ echo json_encode($out);
+} else { // PHP < 5.2
+ echo __json_encode($out);
+}
exit;
?>
\ No newline at end of file
--
Gitblit v1.9.1