From 826209441942e71e9efc658b44b2077ddfd5b379 Mon Sep 17 00:00:00 2001 From: "GODZilla0480@gmail.com" <> Date: Tue, 30 Aug 2011 13:58:52 +0000 Subject: Fixed Issue#362 --- framework/Web/UI/TThemeManager.php | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) (limited to 'framework/Web/UI/TThemeManager.php') diff --git a/framework/Web/UI/TThemeManager.php b/framework/Web/UI/TThemeManager.php index ba4fa81d..9fb138bb 100644 --- a/framework/Web/UI/TThemeManager.php +++ b/framework/Web/UI/TThemeManager.php @@ -44,6 +44,17 @@ class TThemeManager extends TModule * default themes base path */ const DEFAULT_BASEPATH='themes'; + + /** + * default theme class + */ + const DEFAULT_THEMECLASS = 'TTheme'; + + /** + * @var string + */ + private $_themeClass=self::DEFAULT_THEMECLASS; + /** * @var boolean whether this module has been initialized */ @@ -80,8 +91,21 @@ class TThemeManager extends TModule { $themePath=$this->getBasePath().DIRECTORY_SEPARATOR.$name; $themeUrl=rtrim($this->getBaseUrl(),'/').'/'.$name; - return new TTheme($themePath,$themeUrl); + return Prado::createComponent($this->getThemeClass(), $themePath, $themeUrl); + } + + /** + * @param string|null $class Theme class name in namespace format + */ + public function setThemeClass($class) { + $this->_themeClass = $class===null ? self::DEFAULT_THEMECLASS : (string)$class; + } + /** + * @return string Theme class name in namespace format. Defaults to {@link TThemeManager::DEFAULT_THEMECLASS DEFAULT_THEMECLASS}. + */ + public function getThemeClass() { + return $this->_themeClass; } /** @@ -328,7 +352,7 @@ class TTheme extends TApplicationComponent implements ITheme return $this->_name; } - /** + /** * @param string theme name */ protected function setName($value) @@ -344,7 +368,7 @@ class TTheme extends TApplicationComponent implements ITheme return $this->_themeUrl; } - /** + /** * @param string the URL to the theme folder */ protected function setBaseUrl($value) @@ -360,14 +384,14 @@ class TTheme extends TApplicationComponent implements ITheme return $this->_themePath; } - /** + /** * @param string tthe file path to the theme folder */ protected function setBasePath($value) { $this->_themePath=$value; } - + /** * @return array list of skins for the theme */ @@ -376,7 +400,7 @@ class TTheme extends TApplicationComponent implements ITheme return $this->_skins; } - /** + /** * @param array list of skins for the theme */ protected function setSkins($value) @@ -465,7 +489,7 @@ class TTheme extends TApplicationComponent implements ITheme return $this->_cssFiles; } - /** + /** * @param array list of CSS files (URL) in the theme */ protected function setStyleSheetFiles($value) -- cgit v1.2.3