diff options
author | Bharat Mediratta <bharat@menalto.com> | 2009-11-27 17:12:13 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2009-11-27 17:12:13 -0800 |
commit | 22149b52c309152b3e0e186159df9e80ae5c28f8 (patch) | |
tree | aa97b4b534eeda419d4319f74a89bc9a07eacaee /modules | |
parent | ce183e5a698cf0611a68d11fad5a490a91aa9350 (diff) |
Move the theme fallback checking into theme::load_themes() so that
we're calling it once per request.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gallery/helpers/theme.php | 17 | ||||
-rw-r--r-- | modules/gallery/libraries/Admin_View.php | 6 | ||||
-rw-r--r-- | modules/gallery/libraries/Theme_View.php | 6 |
3 files changed, 13 insertions, 16 deletions
diff --git a/modules/gallery/helpers/theme.php b/modules/gallery/helpers/theme.php index 16ed104e..efc9b9e6 100644 --- a/modules/gallery/helpers/theme.php +++ b/modules/gallery/helpers/theme.php @@ -24,6 +24,8 @@ * Note: by design, this class does not do any permission checking. */ class theme_Core { + public static $active_theme; + /** * Load the active theme. This is called at bootstrap time. We will only ever have one theme * active for any given request. @@ -35,15 +37,22 @@ class theme_Core { $path = "/" . $input->get("kohana_uri"); } + $is_admin = $path == "/admin" || !strncmp($path, "/admin/", 7); + $setting_name = $is_admin ? "active_admin_theme" : "active_site_theme"; if (!(identity::active_user()->admin && $theme_name = $input->get("theme"))) { - $theme_name = module::get_var( - "gallery", - $path == "/admin" || !strncmp($path, "/admin/", 7) ? - "active_admin_theme" : "active_site_theme"); + $theme_name = module::get_var("gallery", $setting_name); + + if (!file_exists(THEMEPATH . $theme_name)) { + Kohana::log("error", "Unable to locate theme '$theme_name', switching to default theme."); + $theme_name = $is_admin ? "admin_wind" : "wind"; + module::set_var("gallery", $setting_name, $theme_name); + } } $modules = Kohana::config("core.modules"); array_unshift($modules, THEMEPATH . $theme_name); Kohana::config_set("core.modules", $modules); + + self::$active_theme = $theme_name; } static function get_edit_form_admin() { diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php index cbb781a1..a990e4ca 100644 --- a/modules/gallery/libraries/Admin_View.php +++ b/modules/gallery/libraries/Admin_View.php @@ -27,12 +27,6 @@ class Admin_View_Core extends Gallery_View { * @return void */ public function __construct($name) { - $theme_name = module::get_var("gallery", "active_admin_theme"); - if (!file_exists(THEMEPATH . $theme_name)) { - module::set_var("gallery", "active_admin_theme", "admin_wind"); - theme::load_themes(); - Kohana::log("error", "Unable to locate theme '$theme_name', switching to default theme."); - } parent::__construct($name); $this->theme_name = module::get_var("gallery", "active_admin_theme"); diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index b64deab9..817a46ad 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -29,12 +29,6 @@ class Theme_View_Core extends Gallery_View { * @return void */ public function __construct($name, $page_type, $page_subtype) { - $theme_name = module::get_var("gallery", "active_site_theme"); - if (!file_exists(THEMEPATH . $theme_name)) { - module::set_var("gallery", "active_site_theme", "wind"); - theme::load_themes(); - Kohana::log("error", "Unable to locate theme '$theme_name', switching to default theme."); - } parent::__construct($name); $this->theme_name = module::get_var("gallery", "active_site_theme"); |