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 | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 19f2d43..fe0d747 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -414,12 +414,12 @@ { $out = ''; if (!$this->framed && !empty($this->js_env)) { - $out .= JS_OBJECT_NAME . '.set_env('.json_encode($this->js_env).");\n"; + $out .= JS_OBJECT_NAME . '.set_env('.json_serialize($this->js_env).");\n"; } foreach ($this->js_commands as $i => $args) { $method = array_shift($args); foreach ($args as $i => $arg) { - $args[$i] = json_encode($arg); + $args[$i] = json_serialize($arg); } $parent = $this->framed || preg_match('/^parent\./', $method); $out .= sprintf( @@ -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