From 397f1f02d104a08321e9500aa65e83e5b3d22c4e Mon Sep 17 00:00:00 2001 From: wei <> Date: Sun, 29 Jan 2006 04:59:32 +0000 Subject: Allow TPage constructor to alter application configuration. --- framework/Web/Services/TPageService.php | 4 +++- framework/Web/UI/TPage.php | 12 ++++++++++-- framework/Web/UI/TTemplateManager.php | 3 ++- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'framework/Web') diff --git a/framework/Web/Services/TPageService.php b/framework/Web/Services/TPageService.php index b07527c6..0d8f28b9 100644 --- a/framework/Web/Services/TPageService.php +++ b/framework/Web/Services/TPageService.php @@ -442,8 +442,10 @@ class TPageService extends TService } else $className='TPage'; + //allow the page constructor to change application settings before template is loaded + $this->_page=new $className(); $this->_properties['Template']=$this->getTemplateManager()->getTemplateByFileName($path.self::PAGE_FILE_EXT); - $this->_page=new $className($this->_properties); + $this->_page->initializeProperties($this->_properties); } else throw new THttpException(404,'pageservice_page_unknown',$this->_pagePath); diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 70439237..28f1b036 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -111,11 +111,18 @@ class TPage extends TTemplateControl private $_previousPagePath=''; /** - * Constructor. + * Constructor, overrides parent implementation. Parent constructor called in initializeProperties. + */ + public function __construct() + { + + } + + /** * If initial property values are given, they will be set to the page. * @param array initial property values for the page. */ - public function __construct($initProperties=null) + public function initializeProperties($initProperties=null) { Prado::trace('Constructing page','System.Web.UI.TPage'); $this->setPage($this); @@ -125,6 +132,7 @@ class TPage extends TTemplateControl foreach($initProperties as $name=>$value) $this->setSubProperty($name,$value); } + //ask template control to initialize parent::__construct(); } diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php index 3c522897..312b821d 100644 --- a/framework/Web/UI/TTemplateManager.php +++ b/framework/Web/UI/TTemplateManager.php @@ -355,7 +355,8 @@ class TTemplate extends TComponent implements ITemplate $component->$setter($this->getApplication()->getParameters()->itemAt($value[1])); break; case self::CONFIG_LOCALIZATION: - $component->$setter(localize($value[1])); + Prado::using('System.I18N.Translation'); + $component->$setter(localize(trim($value[1]))); break; default: // an error if reaching here break; -- cgit v1.2.3