From 5740c0670047da260cb91107068d7f7635faaca1 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 18 Jan 2010 13:21:45 -0500
Subject: [PATCH] - Use callback function instead of /e modifier in preg_replace()

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

diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index 5226f8d..fe0d747 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -455,7 +455,16 @@
     {
         $GLOBALS['__version'] = Q(RCMAIL_VERSION);
         $GLOBALS['__comm_path'] = Q($this->app->comm_path);
-        return preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input);
+        return preg_replace_callback('/\$(__[a-z0-9_\-]+)/',
+	    array($this, 'globals_callback'), $input);
+    }
+
+    /**
+     * Callback funtion for preg_replace_callback() in parse_with_globals()
+     */
+    private function globals_callback($matches)
+    {
+        return $GLOBALS[$matches[1]];
     }
 
     /**

--
Gitblit v1.9.1