From 9ca0e83cc39d67c240ea89a2395d3bdb170fb4f7 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 17 Jul 2007 11:54:59 +0000 Subject: Added THead requirement check --- framework/Exceptions/messages.txt | 1 + framework/Web/UI/TClientScriptManager.php | 10 ++++++++++ framework/Web/UI/TPage.php | 3 +++ 3 files changed, 14 insertions(+) (limited to 'framework') diff --git a/framework/Exceptions/messages.txt b/framework/Exceptions/messages.txt index baddb754..c9607f00 100644 --- a/framework/Exceptions/messages.txt +++ b/framework/Exceptions/messages.txt @@ -193,6 +193,7 @@ page_isvalid_unknown = TPage.IsValid has not been evaluated yet. page_postbackcontrol_invalid = Unable to determine postback control '{0}'. page_control_outofform = {0} '{1}' must be enclosed within TForm. page_head_duplicated = A page can contain at most one THead. +page_head_required = A THead control is needed in page template in order to render CSS and js in the HTML head section. page_statepersister_invalid = Page state persister must implement IPageStatePersister interface. csmanager_pradoscript_invalid = Unknown Prado script library name '{0}'. diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index efb8ec17..5f924397 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -86,6 +86,16 @@ class TClientScriptManager extends TApplicationComponent $this->_page=$owner; } + /** + * @return boolean whether THead is required in order to render CSS and js within head + * @since 3.1.1 + */ + public function getRequiresHead() + { + return count($this->_styleSheetFiles) || count($this->_styleSheets) + || count($this->_headScriptFiles) || count($this->_headScripts); + } + /** * Registers Prado javascript by library name. See "Web/Javascripts/source/packages.php" * for library names. diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 1a9f45c6..f368bc60 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -659,6 +659,9 @@ class TPage extends TTemplateControl foreach($this->_styleSheet->getJavaScriptFiles() as $url) $cs->registerHeadScriptFile($url,$url); } + + if($cs->getRequiresHead() && $this->getHead()===null) + throw new TConfigurationException('page_head_required'); } /** -- cgit v1.2.3