summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY1
-rw-r--r--framework/Web/Services/TPageService.php27
2 files changed, 26 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 7fff00fb..ce142543 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6,6 +6,7 @@ BUG: Ticket#213 - PRADO Requirements Checker charset error (Qiang)
CHG: ensureChildControls() is now invoked in TControl::initRecursive (Qiang)
CHG: Postback enabled control will always disable default client-side browser action. (Qiang)
ENH: TRepeater, TDataList and TDataGrid will store data indices in DataKeys if DataKeyField is not set. (Qiang)
+ENH: Added TPageService.BasePageClass property (Qiang)
Version 3.0.1 June 4, 2006
==========================
diff --git a/framework/Web/Services/TPageService.php b/framework/Web/Services/TPageService.php
index 1df4ffde..5172f59c 100644
--- a/framework/Web/Services/TPageService.php
+++ b/framework/Web/Services/TPageService.php
@@ -96,6 +96,10 @@ class TPageService extends TService
*/
private $_basePath=null;
/**
+ * @var string base path class in namespace format
+ */
+ private $_basePageClass='TPage';
+ /**
* @var string default page
*/
private $_defaultPage='Home';
@@ -398,6 +402,25 @@ class TPageService extends TService
}
/**
+ * Sets the base page class name (in namespace format).
+ * If a page only has a template file without page class file,
+ * this base page class will be instantiated.
+ * @param string class name
+ */
+ public function setBasePageClass($value)
+ {
+ $this->_basePageClass=$value;
+ }
+
+ /**
+ * @return string base page class name in namespace format. Defaults to 'TPage'.
+ */
+ public function getBasePageClass()
+ {
+ return $this->_basePageClass;
+ }
+
+ /**
* Runs the service.
* This will create the requested page, initializes it with the property values
* specified in the configuration, and executes the page.
@@ -417,9 +440,9 @@ class TPageService extends TService
throw new TConfigurationException('pageservice_pageclass_unknown',$className);
}
else
- $className='TPage';
+ $className=$this->getBasePageClass();
- $this->_page=new $className();
+ $this->_page=Prado::createComponent($className);
$this->_page->setPagePath($this->getRequestedPagePath());
// initialize page properties with those set in configurations