From d833d2766f28f927cb4e1e8e660771361abdfdf9 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 17 Nov 2005 19:21:21 +0000 Subject: added application mode support. --- framework/Exceptions/TErrorHandler.php | 24 +++++++++++++++----- framework/Exceptions/error.en | 9 +++++--- framework/TApplication.php | 20 +++++++++++++++++ framework/Web/Services/TPageService.php | 40 ++------------------------------- framework/Web/UI/TThemeManager.php | 17 ++++++++------ 5 files changed, 57 insertions(+), 53 deletions(-) (limited to 'framework') diff --git a/framework/Exceptions/TErrorHandler.php b/framework/Exceptions/TErrorHandler.php index 47feb54c..af41e056 100644 --- a/framework/Exceptions/TErrorHandler.php +++ b/framework/Exceptions/TErrorHandler.php @@ -39,11 +39,23 @@ class TErrorHandler extends TComponent implements IModule public function handleError($sender,$param) { - $type='Unhandled Exception'; - $this->displayException($param,$type); + if(($response=Prado::getApplication()->getResponse())!==null) + $response->clear(); + switch(Prado::getApplication()->getMode()) + { + case 'Off': + case 'Debug': + $this->displayException($param); + exit(1); + case 'Normal': + case 'Performance': + error_log($param->__toString()); + header("HTTP/1.0 500 Internal Error"); + exit(1); + } } - protected function displayException($exception,$type) + protected function displayException($exception) { $lines=file($exception->getFile()); $errorLine=$exception->getLine(); @@ -66,7 +78,8 @@ class TErrorHandler extends TComponent implements IModule '%%SourceFile%%', '%%SourceCode%%', '%%StackTrace%%', - '%%Version%%' + '%%Version%%', + '%%Time%%' ); $values=array( get_class($exception), @@ -74,7 +87,8 @@ class TErrorHandler extends TComponent implements IModule htmlspecialchars($exception->getFile()).' ('.$exception->getLine().')', $source, htmlspecialchars($exception->getTraceAsString()), - $_SERVER['SERVER_SOFTWARE'].' PRADO/'.Prado::getVersion() + $_SERVER['SERVER_SOFTWARE'].' PRADO/'.Prado::getVersion(), + strftime('%Y-%m-%d %H:%m',time()) ); $languages=Prado::getUserLanguages(); $errorFile=dirname(__FILE__).'/error.'.$languages[0]; diff --git a/framework/Exceptions/error.en b/framework/Exceptions/error.en index 146ed2e8..1d76c7f2 100644 --- a/framework/Exceptions/error.en +++ b/framework/Exceptions/error.en @@ -8,7 +8,7 @@ h2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } h3 {font-family:"Verdana";font-weight:bold;font-size:11pt} p {font-family:"Verdana";font-weight:normal;color:black;font-size:9pt;margin-top: -5px} code,pre {font-family:"Lucida Console";} -.version {color: gray;font-size:8pt;border-top:1px solid #aaaaaa;} +td,.version {color: gray;font-size:8pt;border-top:1px solid #aaaaaa;} .source {font-family:"Lucida Console";font-weight:normal;background-color:#ffffee;} @@ -16,7 +16,7 @@ code,pre {font-family:"Lucida Console";}
%%ErrorMessage%%
+%%ErrorMessage%%
%%SourceFile%%
@@ -29,6 +29,9 @@ code,pre {font-family:"Lucida Console";} %%StackTrace%% -