summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/helpers/theme.php17
-rw-r--r--modules/gallery/libraries/Admin_View.php6
-rw-r--r--modules/gallery/libraries/Theme_View.php6
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");