From 48c022e8cbcc027cec20aa0b6657a2c784df5ad8 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 20 Mar 2009 14:59:55 +0000 Subject: Rather than moving the themeroller and all of its associated files into each theme. I chose to create methods Theme_View::file($path) and Admin_View::file($path). These methods check for a theme override file in the theme and return a link to it if it exists. So to override the themeroller files. just create a lib/themeroller in the theme and the files will be picked up. --- core/libraries/Admin_View.php | 5 +++++ core/libraries/Theme_View.php | 6 +++++- themes/admin_default/views/admin.html.php | 16 ++++++++-------- themes/default/views/login_page.html.php | 16 ++++++++-------- themes/default/views/page.html.php | 16 ++++++++-------- 5 files changed, 34 insertions(+), 25 deletions(-) diff --git a/core/libraries/Admin_View.php b/core/libraries/Admin_View.php index 9ca585d2..e88b01ee 100644 --- a/core/libraries/Admin_View.php +++ b/core/libraries/Admin_View.php @@ -45,6 +45,11 @@ class Admin_View_Core extends View { return $absolute_url ? url::abs_file($arg) : url::file($arg); } + public function file($path) { + $theme_path = "themes/{$this->theme_name}/$path"; + return url::file(file_exists($theme_path) ? $theme_path : $path); + } + public function display($page_name, $view_class="View") { return new $view_class($page_name); } diff --git a/core/libraries/Theme_View.php b/core/libraries/Theme_View.php index 84d86b0b..fba61afe 100644 --- a/core/libraries/Theme_View.php +++ b/core/libraries/Theme_View.php @@ -46,7 +46,6 @@ class Theme_View_Core extends View { if ($maintenance_mode) { message::warning(t("This site is currently in maintenance mode")); } - } public function url($path, $absolute_url=false) { @@ -54,6 +53,11 @@ class Theme_View_Core extends View { return $absolute_url ? url::abs_file($arg) : url::file($arg); } + public function file($path) { + $theme_path = "themes/{$this->theme_name}/$path"; + return url::file(file_exists($theme_path) ? $theme_path : $path); + } + public function item() { return $this->item; } diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index 55f0f884..d56015db 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -6,11 +6,11 @@ G3: Admin Dashboard " type="image/x-icon" /> - " + " media="screen,projection" /> - " + " media="screen,projection" /> - " + " media="screen,projection" /> " media="screen,projection" /> @@ -20,11 +20,11 @@ " media="screen,print,projection" /> - - - - - + + + + + admin_head() ?> diff --git a/themes/default/views/login_page.html.php b/themes/default/views/login_page.html.php index 1bd76c18..933a8bc2 100644 --- a/themes/default/views/login_page.html.php +++ b/themes/default/views/login_page.html.php @@ -8,11 +8,11 @@ " type="image/x-icon" /> - " + " media="screen,print,projection" /> - " + " media="screen" /> - " + " media="screen,print,projection" /> " media="screen,print,projection" /> @@ -20,11 +20,11 @@ " media="screen,print,projection" /> - - - - - + + + + + - - - - + + + + + -- cgit v1.2.3