From c719f3c1e06c00fa4723f2f1298b3c94a1bec7e7 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 20 Jun 2008 06:40:01 -0400 Subject: [PATCH] Store compose parameters in session and redirect to a unique URL --- program/include/rcube_template.php | 36 ++++++++++++++++++++++++++---------- 1 files changed, 26 insertions(+), 10 deletions(-) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 9bc918e..75a9a60 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -57,11 +57,8 @@ //$this->framed = $framed; $this->set_env('task', $task); - // load the correct skin (in case user-defined) - if (empty($this->config['skin']) || !is_readable('skins/'.$this->config['skin'])) - $this->config['skin'] = $this->config['default_skin']; - - $this->config['skin_path'] = 'skins/'.$this->config['skin']; + // load the correct skin (in case user-defined) + $this->set_skin($this->config['skin']); // add common javascripts $javascript = 'var '.JS_OBJECT_NAME.' = new rcube_webmail();'; @@ -113,8 +110,13 @@ */ public function set_skin($skin) { - if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) - $this->config['skin_path'] = 'skins/'.$skin; + if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) + $skin_path = 'skins/'.$skin; + else + $skin_path = $this->config['skin_path'] ? $this->config['skin_path'] : 'skins/default'; + + $this->app->config->set('skin_path', $skin_path); + $this->config['skin_path'] = $skin_path; } /** @@ -125,9 +127,9 @@ */ public function template_exists($name) { - $filename = $this->config['skin_path'] . '/templates/' . $name . '.html'; + $filename = $this->config['skin_path'] . '/templates/' . $name . '.html'; - return (is_file($filename) && is_readable($filename)); + return (is_file($filename) && is_readable($filename)); } /** @@ -216,7 +218,7 @@ * @uses self::$js_commands * @uses self::$object_handlers */ - public public function reset() + public function reset() { $this->env = array(); $this->js_env = array(); @@ -227,6 +229,20 @@ /** + * Redirect to a certain url + * + * @param mixed Either a string with the action or url parameters as key-value pairs + * @see rcmail::url() + */ + public function redirect($p = array()) + { + $location = $this->app->url($p); + header('Location: ' . $location); + exit; + } + + + /** * Send the request output to the client. * This will either parse a skin tempalte or send an AJAX response * -- Gitblit v1.9.1