From 95045861e77f7ad9978cf6f3e741f3ffe66e8f96 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 30 Mar 2006 19:38:44 +0000 Subject: Enhanced page title manipulation so that page title is always stored in THead. --- framework/Web/UI/TPage.php | 19 +++++++++++++++++-- framework/Web/UI/WebControls/THead.php | 3 +-- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'framework') diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 27742ddd..e13f21c1 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -69,6 +69,10 @@ class TPage extends TTemplateControl * @var TTheme page theme */ private $_theme=null; + /** + * @var string page title set when Head is not in page yet + */ + private $_title=null; /** * @var TTheme page stylesheet theme */ @@ -792,6 +796,11 @@ class TPage extends TTemplateControl if($this->_head) throw new TInvalidOperationException('page_head_duplicated'); $this->_head=$value; + if($this->_title!==null) + { + $this->_head->setTitle($this->_title); + $this->_title=null; + } } /** @@ -799,7 +808,10 @@ class TPage extends TTemplateControl */ public function getTitle() { - return $this->getViewState('Title',''); + if($this->_head) + return $this->_head->getTitle(); + else + return $this->_title===null ? '' : $this->_title; } /** @@ -810,7 +822,10 @@ class TPage extends TTemplateControl */ public function setTitle($value) { - $this->setViewState('Title',$value,''); + if($this->_head) + $this->_head->setTitle($value); + else + $this->_title=$value; } /** diff --git a/framework/Web/UI/WebControls/THead.php b/framework/Web/UI/WebControls/THead.php index 078582d5..40736a92 100644 --- a/framework/Web/UI/WebControls/THead.php +++ b/framework/Web/UI/WebControls/THead.php @@ -116,8 +116,7 @@ class THead extends TControl public function render($writer) { $page=$this->getPage(); - if(($title=$page->getTitle())==='') - $title=$this->getTitle(); + $title=$this->getTitle(); $writer->write("
\n