From 1988e9cd45fce05d26f0682f6d1cbdfb72cd2370 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 28 Jun 2006 20:29:33 +0000 Subject: Enhanced some error description. --- framework/Exceptions/messages.txt | 4 +++- framework/Web/UI/TThemeManager.php | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'framework') diff --git a/framework/Exceptions/messages.txt b/framework/Exceptions/messages.txt index 60b57d78..230789e7 100644 --- a/framework/Exceptions/messages.txt +++ b/framework/Exceptions/messages.txt @@ -143,7 +143,9 @@ authmanager_usermanager_invalid = TAuthManager.UserManager '{0}' does not refe authmanager_usermanager_unchangeable = TAuthManager.UserManager cannot be modified after the module is initialized. authmanager_session_required = TAuthManager requires a session application module. -thememanager_basepath_invalid = TThemeManager.BasePath '{0}' is not a valid directory. +thememanager_service_unavailable = TThemeManager requires TPageService to be available. This error often occurs when you configure TThemeManager outside of the page service configuration. +thememanager_basepath_invalid = TThemeManager.BasePath '{0}' is not a valid path alias. Make sure you have defined this alias in configuration and it points to a valid directory. +thememanager_basepath_invalid2 = TThemeManager.BasePath '{0}' is not a valid directory. thememanager_basepath_unchangeable = TThemeManager.BasePath cannot be modified after the module is initialized. theme_baseurl_required = TThemeManager.BasePath is required. By default, a directory named 'themes' under the directory containing the application entry script is assumed. diff --git a/framework/Web/UI/TThemeManager.php b/framework/Web/UI/TThemeManager.php index 66bfa8be..245f8049 100644 --- a/framework/Web/UI/TThemeManager.php +++ b/framework/Web/UI/TThemeManager.php @@ -10,6 +10,8 @@ * @package System.Web.UI */ +Prado::using('System.Web.Services.TPageService'); + /** * TThemeManager class * @@ -63,7 +65,11 @@ class TThemeManager extends TModule public function init($config) { $this->_initialized=true; - $this->getService()->setThemeManager($this); + $service=$this->getService(); + if($service instanceof TPageService) + $service->setThemeManager($this); + else + throw new TConfigurationException('thememanager_service_unavailable'); } /** @@ -105,7 +111,7 @@ class TThemeManager extends TModule { $this->_basePath=dirname($this->getRequest()->getApplicationFilePath()).'/'.self::DEFAULT_BASEPATH; if(($basePath=realpath($this->_basePath))===false || !is_dir($basePath)) - throw new TConfigurationException('thememanager_basepath_invalid',$this->_basePath); + throw new TConfigurationException('thememanager_basepath_invalid2',$this->_basePath); $this->_basePath=$basePath; } return $this->_basePath; -- cgit v1.2.3