From 13495b462f6a618530f0f6af71fb6fad6bafed91 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 2 Mar 2007 21:05:38 +0000 Subject: Improved error display. --- framework/Web/UI/TTemplateManager.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php index b94becb1..a8caba24 100644 --- a/framework/Web/UI/TTemplateManager.php +++ b/framework/Web/UI/TTemplateManager.php @@ -65,7 +65,7 @@ class TTemplateManager extends TModule public function getTemplateByClassName($className) { $class=new ReflectionClass($className); - $tplFile=dirname($class->getFileName()).'/'.$className.self::TEMPLATE_FILE_EXT; + $tplFile=dirname($class->getFileName()).DIRECTORY_SEPARATOR.$className.self::TEMPLATE_FILE_EXT; return $this->getTemplateByFileName($tplFile); } @@ -752,7 +752,7 @@ class TTemplate extends TApplicationComponent implements ITemplate } catch(Exception $e) { - if(($e instanceof TException) && ($e->getErrorCode()==='template_format_invalid' || $e->getErrorCode()==='template_format_invalid2')) + if(($e instanceof TException) && ($e instanceof TTemplateException)) throw $e; if($matchEnd===0) $line=$this->_startingLine+1; @@ -992,6 +992,7 @@ class TTemplate extends TApplicationComponent implements ITemplate protected function handleException($e,$line,$input=null) { $srcFile=$this->_tplFile; + if(($n=count($this->_includedFiles))>0) // need to adjust error row number and file name { for($i=$n-1;$i>=0;--$i) @@ -1009,10 +1010,13 @@ class TTemplate extends TApplicationComponent implements ITemplate } } } - if(empty($srcFile)) - throw new TConfigurationException('template_format_invalid2',$line,$e->getMessage(),$input); + $exception=new TTemplateException('template_format_invalid',$e->getMessage()); + $exception->setLineNumber($line); + if(!empty($srcFile)) + $exception->setTemplateFile($srcFile); else - throw new TConfigurationException('template_format_invalid',$srcFile,$line,$e->getMessage()); + $exception->setTemplateSource($input); + throw $exception; } /** -- cgit v1.2.3