From 8d526c49381d9ac646c1a9b31936e0104dc3a6dc Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <bruederli@kolabsys.com> Date: Mon, 03 Nov 2014 10:15:44 -0500 Subject: [PATCH] Fix skin path handling in plugin context (#1488967): The plugin skin directories are removed again from the search path after parsing of a plugin template has finished. --- program/include/rcmail_output_html.php | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php index 3d2f51b..026e9f8 100644 --- a/program/include/rcmail_output_html.php +++ b/program/include/rcmail_output_html.php @@ -462,6 +462,8 @@ { $plugin = false; $realname = $name; + $plugin_skin_paths = array(); + $this->template_name = $realname; $temp = explode('.', $name, 2); @@ -471,7 +473,6 @@ $skin_dir = $plugin . '/skins/' . $this->config->get('skin'); // apply skin search escalation list to plugin directory - $plugin_skin_paths = array(); foreach ($this->skin_paths as $skin_path) { $plugin_skin_paths[] = $this->app->plugins->url . $plugin . '/' . $skin_path; } @@ -482,7 +483,7 @@ $plugin_skin_paths[] = $this->app->plugins->url . $skin_dir; } - // add plugin skin paths to search list + // prepend plugin skin paths to search list $this->skin_paths = array_merge($plugin_skin_paths, $this->skin_paths); } @@ -525,6 +526,8 @@ 'file' => __FILE__, 'message' => 'Error loading template for '.$realname ), true, $write); + + $this->skin_paths = array_slice($this->skin_paths, count($plugin_skin_paths)); return false; } @@ -549,6 +552,9 @@ $output = preg_replace_callback('/<form\s+([^>]+)>/Ui', array($this, 'alter_form_tag'), $output); $this->footer = preg_replace_callback('/<form\s+([^>]+)>/Ui', array($this, 'alter_form_tag'), $this->footer); + // remove plugin skin paths from current context + $this->skin_paths = array_slice($this->skin_paths, count($plugin_skin_paths)); + if (!$write) { return $output; } -- Gitblit v1.9.1