From 0e99d37a18cf81b549b8fc7e8948e9bd338deaad Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 01 Jun 2009 11:35:53 -0400
Subject: [PATCH] Use event system on the client to handle ajax callbacks

---
 program/include/rcube_template.php |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index d82379d..a358d0c 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -201,7 +201,9 @@
      */
     public function command()
     {
-        $this->js_commands[] = func_get_args();
+        $cmd = func_get_args();
+        if (strpos($cmd[0], 'plugin.') === false)
+          $this->js_commands[] = $cmd;
     }
 
 
@@ -516,14 +518,16 @@
                 '/config:([a-z0-9_]+)(:([a-z0-9_]+))?/i',
                 '/env:([a-z0-9_]+)/i',
                 '/request:([a-z0-9_]+)/i',
-                '/cookie:([a-z0-9_]+)/i'
+                '/cookie:([a-z0-9_]+)/i',
+                '/browser:([a-z0-9_]+)/i'
             ),
             array(
                 "\$_SESSION['\\1']",
                 "\$this->app->config->get('\\1',get_boolean('\\3'))",
                 "\$this->env['\\1']",
                 "get_input_value('\\1', RCUBE_INPUT_GPC)",
-                "\$_COOKIE['\\1']"
+                "\$_COOKIE['\\1']",
+                "\$this->browser->{'\\1'}"
             ),
             $expression);
     }
@@ -677,6 +681,9 @@
                     case 'cookie':
                         $value = htmlspecialchars($_COOKIE[$name]);
                         break;
+                    case 'browser':
+                        $value = $this->browser->{$name};
+                        break;
                 }
 
                 if (is_array($value)) {

--
Gitblit v1.9.1