From 31ccaac63570dc86ef9fa840d63ca5f019fabbb2 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 5 May 2006 14:59:44 +0000 Subject: Fixed #161. --- demos/quickstart/protected/pages/ViewSource.php | 90 ++++++++++++++++--------- 1 file changed, 58 insertions(+), 32 deletions(-) (limited to 'demos/quickstart/protected/pages/ViewSource.php') diff --git a/demos/quickstart/protected/pages/ViewSource.php b/demos/quickstart/protected/pages/ViewSource.php index cfdc63ef..9a8d7d09 100644 --- a/demos/quickstart/protected/pages/ViewSource.php +++ b/demos/quickstart/protected/pages/ViewSource.php @@ -6,19 +6,6 @@ class ViewSource extends TPage private $_fullPath=null; private $_fileType=null; - protected function isFileTypeAllowed($extension) - { - return in_array($extension,array('tpl','page','php')); - } - - protected function getFileExtension($fileName) - { - if(($pos=strrpos($fileName,'.'))===false) - return ''; - else - return substr($fileName,$pos+1); - } - public function onLoad($param) { parent::onLoad($param); @@ -35,49 +22,88 @@ class ViewSource extends TPage } if($this->_fullPath===null) throw new THttpException(500,'File Not Found: %s',$path); + + $this->SourceList->DataSource=$this->SourceFiles; + $this->SourceList->dataBind(); + + $this->Highlighter->Language=$this->getFileLanguage($fileExt); + $this->SourceView->Text=file_get_contents($this->_fullPath); + } + + public function getFilePath() + { + return $this->_path; + } + + protected function getSourceFiles() + { + $list=array(); $basePath=dirname($this->_fullPath); if($dh=opendir($basePath)) { - $str="

{$this->_path}

\n"; while(($file=readdir($dh))!==false) { if(is_file($basePath.'/'.$file)) { - $fileType=$this->getFileExtension($basePath.'/'.$file); - if($this->isFileTypeAllowed($fileType)) + $extension=$this->getFileExtension($basePath.'/'.$file); + if($this->isFileTypeAllowed($extension)) { - if($fileType==='tpl' || $fileType==='page') - $type='Template file'; - else - $type='Class file'; - $path='/'.ltrim(strtr(dirname($this->_path),'\\','/').'/'.$file,'/'); - $str.="$type: $file
"; + $fileType=$this->getFileType($extension); + $list[]=array( + 'name'=>$file, + 'type'=>$fileType, + 'active'=>basename($this->_fullPath)===$file, + 'url'=>'?page=ViewSource&path=/'.ltrim(strtr(dirname($this->_path),'\\','/').'/'.$file,'/') + ); } } } closedir($dh); - $this->SourceList->Text=$str; } + foreach($list as $item) + $aux[]=$item['name']; + array_multisort($aux, SORT_ASC, $list); + return $list; + } - switch($fileExt) + protected function isFileTypeAllowed($extension) + { + return in_array($extension,array('tpl','page','php','html')); + } + + protected function getFileExtension($fileName) + { + if(($pos=strrpos($fileName,'.'))===false) + return ''; + else + return substr($fileName,$pos+1); + } + + protected function getFileType($extension) + { + if($extension==='tpl' || $extension==='page') + return 'Template file'; + else + return 'Class file'; + } + + protected function getFileLanguage($extension) + { + switch($extension) { case 'page' : case 'tpl' : - $this->Highlighter->Language='prado'; - break; + return 'prado'; case 'php' : - $this->Highlighter->Language='php'; + return 'php'; break; case 'xml' : - $this->Highlighter->Language='xml'; + return 'xml'; break; default : - $this->Highlighter->Language='html'; - break; + return 'html'; } - - $this->SourceView->Text=file_get_contents($this->_fullPath); } } -- cgit v1.2.3