diff options
author | wei <> | 2006-01-29 04:59:32 +0000 |
---|---|---|
committer | wei <> | 2006-01-29 04:59:32 +0000 |
commit | 397f1f02d104a08321e9500aa65e83e5b3d22c4e (patch) | |
tree | 5109066e57064f973978fabbd40d6fab2f844df0 | |
parent | c89523c4ab1bda766d6b0b4b4d2ade3513046400 (diff) |
Allow TPage constructor to alter application configuration.
-rw-r--r-- | framework/Web/Services/TPageService.php | 4 | ||||
-rw-r--r-- | framework/Web/UI/TPage.php | 12 | ||||
-rw-r--r-- | framework/Web/UI/TTemplateManager.php | 3 |
3 files changed, 15 insertions, 4 deletions
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;
|