diff options
Diffstat (limited to 'demos/quickstart/protected/pages/DetailPage.php')
| -rw-r--r-- | demos/quickstart/protected/pages/DetailPage.php | 55 | 
1 files changed, 55 insertions, 0 deletions
diff --git a/demos/quickstart/protected/pages/DetailPage.php b/demos/quickstart/protected/pages/DetailPage.php new file mode 100644 index 00000000..afd81272 --- /dev/null +++ b/demos/quickstart/protected/pages/DetailPage.php @@ -0,0 +1,55 @@ +<?php
 +
 +class DetailPage extends TPage
 +{
 +	private $_file;
 +
 +	public function onLoad($param)
 +	{
 +		parent::onLoad($param);
 +		$isSrc=true;
 +		if(($id=$this->Request->Items['src'])===null)
 +			$this->_file=$this->determineFile($this->Request->Items['tpl'],false);
 +		else
 +			$this->_file=$this->determineFile($id,true);
 +	}
 +
 +	protected function determineFile($id,$isSrcFile)
 +	{
 +		$basePath=dirname(__FILE__).'/controls';
 +
 +		$xml=new TXmlDocument;
 +		$xml->loadFromFile($basePath.'/config.xml');
 +		$pages=$xml->getElementByTagName('pages')->getElementsByTagName('page');
 +		$fileName='';
 +		foreach($pages as $page)
 +		{
 +			if($page->Attributes['id']===$id)
 +			{
 +				if($isSrcFile)
 +					$fileName=$basePath.'/'.$page->Attributes['class'].'.php';
 +				else if($page->Attributes['TemplateFile']!==null)
 +				{
 +					$fileName=$page->Attributes['TemplateFile'];
 +					if(($pos=strrpos($fileName,'.'))!==false)
 +						$fileName=substr($fileName,$pos+1);
 +					$fileName=$basePath.'/'.$fileName.'.tpl';
 +				}
 +				else
 +					$fileName=$basePath.'/'.$page->Attributes['class'].'.tpl';
 +				break;
 +			}
 +		}
 +		if(empty($fileName) || !is_file($fileName))
 +			throw new THttpException(500,"File not exists!");
 +		return $fileName;
 +	}
 +
 +	protected function render($writer)
 +	{
 +		$contents=file_get_contents($this->_file);
 +		$writer->write(highlight_string($contents,true));
 +	}
 +}
 +
 +?>
\ No newline at end of file  | 
