diff options
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/main.inc | 16 | ||||
-rw-r--r-- | program/include/rcube_config.php | 2 | ||||
-rwxr-xr-x | program/include/rcube_template.php | 27 |
3 files changed, 28 insertions, 17 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index 73b9c4124..2740ee35d 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -503,22 +503,6 @@ function strip_newlines($str) /** - * Check if a specific template exists - * - * @param string Template name - * @return boolean True if template exists - */ -function template_exists($name) - { - global $CONFIG; - $skin_path = $CONFIG['skin_path']; - - // check template file - return is_file("$skin_path/templates/$name.html"); - } - - -/** * Create a HTML table based on the given data * * @param array Named table attributes diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php index 5c744ba53..b862bf769 100644 --- a/program/include/rcube_config.php +++ b/program/include/rcube_config.php @@ -61,7 +61,7 @@ class rcube_config $this->load_host_config(); // fix paths - $this->prop['skin_path'] = $this->prop['skin_path'] ? unslashify($this->prop['skin_path']) : 'skins/default'; + $this->prop['default_skin'] = $this->prop['default_skin'] ? unslashify($this->prop['default_skin']) : 'default'; $this->prop['log_dir'] = $this->prop['log_dir'] ? unslashify($this->prop['log_dir']) : INSTALL_PATH . 'logs'; // handle aliases diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 5834e42ab..9bc918e9a 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -57,6 +57,12 @@ class rcube_template extends rcube_html_page //$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']; + // add common javascripts $javascript = 'var '.JS_OBJECT_NAME.' = new rcube_webmail();'; @@ -102,6 +108,27 @@ class rcube_template extends rcube_html_page $this->pagetitle = $title; } + /** + * Set skin + */ + public function set_skin($skin) + { + if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) + $this->config['skin_path'] = 'skins/'.$skin; + } + + /** + * Check if a specific template exists + * + * @param string Template name + * @return boolean True if template exists + */ + public function template_exists($name) + { + $filename = $this->config['skin_path'] . '/templates/' . $name . '.html'; + + return (is_file($filename) && is_readable($filename)); + } /** * Register a template object handler |