mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 10:41:40 +09:00
issue 78 developement http status code display
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9569 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
b5d4771754
commit
138eeaf2e3
3 changed files with 115 additions and 24 deletions
|
|
@ -60,9 +60,16 @@
|
|||
if(method_exists($handler, "prepareToPrint")) $handler->prepareToPrint($output);
|
||||
// header output
|
||||
if($this->gz_enabled) header("Content-Encoding: gzip");
|
||||
|
||||
$httpStatusCode = $oModule->getHttpStatusCode();
|
||||
if($httpStatusCode && $httpStatusCode != 200) $this->_printHttpStatusCode($httpStatusCode);
|
||||
else
|
||||
{
|
||||
if(Context::getResponseMethod() == 'JSON') $this->_printJSONHeader();
|
||||
else if(Context::getResponseMethod() != 'HTML') $this->_printXMLHeader();
|
||||
else $this->_printHTMLHeader();
|
||||
}
|
||||
|
||||
// debugOutput output
|
||||
$this->content_size = strlen($output);
|
||||
$output .= $this->_debugOutput();
|
||||
|
|
@ -252,7 +259,12 @@
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief print a HTTP HEADER for HTML, which is encoded in UTF-8
|
||||
**/
|
||||
function _printHttpStatusCode($code) {
|
||||
$statusMessage = Context::get('http_status_message');
|
||||
header("HTTP/1.0 $code $statusMessage");
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
var $module_info = NULL; ///< Module Info. Object
|
||||
|
||||
var $error = NULL; ///< an error code.
|
||||
var $httpStatusCode = NULL; ///< http status code.
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
|
|
@ -109,7 +110,7 @@
|
|||
}
|
||||
|
||||
// If module_info is not set still, and $module does not exist, find the default module
|
||||
if(!$module_info && !$this->module) $module_info = $site_module_info;
|
||||
if(!$module_info && !$this->module && !$this->mid) $module_info = $site_module_info;
|
||||
|
||||
if(!$module_info && !$this->module && $site_module_info->module_site_srl) $module_info = $site_module_info;
|
||||
|
||||
|
|
@ -147,7 +148,11 @@
|
|||
$this->module_info->site_srl = $site_module_info->site_srl;
|
||||
|
||||
// Still no module? it's an error
|
||||
if(!$this->module) $this->error = 'msg_module_does_not_exist';
|
||||
if(!$this->module)
|
||||
{
|
||||
$this->error = 'msg_module_does_not_exist';
|
||||
$this->httpStatusCode = '404';
|
||||
}
|
||||
|
||||
// If mid exists, set mid into context
|
||||
if($this->mid) Context::set('mid', $this->mid, true);
|
||||
|
|
@ -179,6 +184,10 @@
|
|||
$oMessageObject->setError(-1);
|
||||
$oMessageObject->setMessage($this->error);
|
||||
$oMessageObject->dispMessage();
|
||||
if($this->httpStatusCode)
|
||||
{
|
||||
$oMessageObject->setHttpStatusCode($this->httpStatusCode);
|
||||
}
|
||||
return $oMessageObject;
|
||||
}
|
||||
|
||||
|
|
@ -507,6 +516,12 @@
|
|||
$oMessageObject->setMessage($this->error);
|
||||
$oMessageObject->dispMessage();
|
||||
|
||||
if($oMessageObject->getHttpStatusCode() && $oMessageObject->getHttpStatusCode() != '200')
|
||||
{
|
||||
$this->_setHttpStatusMessage($oMessageObject->getHttpStatusCode());
|
||||
$oMessageObject->setTemplateFile('http_status_code');
|
||||
}
|
||||
|
||||
// If module was called normally, change the templates of the module into ones of the message view module
|
||||
if($oModule) {
|
||||
$oModule->setTemplatePath($oMessageObject->getTemplatePath());
|
||||
|
|
@ -705,5 +720,58 @@
|
|||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get http status message by http status code
|
||||
**/
|
||||
function _setHttpStatusMessage($code) {
|
||||
$statusMessageList = array(
|
||||
'100'=>'Continue',
|
||||
'101'=>'Switching Protocols',
|
||||
'201'=>'OK',
|
||||
'201'=>'Created',
|
||||
'202'=>'Accepted',
|
||||
'203'=>'Non-Authoritative Information',
|
||||
'204'=>'No Content',
|
||||
'205'=>'Reset Content',
|
||||
'206'=>'Partial Content',
|
||||
'300'=>'Multiple Choices',
|
||||
'301'=>'Moved Permanently',
|
||||
'302'=>'Found',
|
||||
'303'=>'See Other',
|
||||
'304'=>'Not Modified',
|
||||
'305'=>'Use Proxy',
|
||||
'307'=>'Temporary Redirect',
|
||||
'400'=>'Bad Request',
|
||||
'401'=>'Unauthorized',
|
||||
'402'=>'Payment Required',
|
||||
'403'=>'Forbidden',
|
||||
'404'=>'Not Found',
|
||||
'405'=>'Method Not Allowed',
|
||||
'406'=>'Not Acceptable',
|
||||
'407'=>'Proxy Authentication Required',
|
||||
'408'=>'Request Timeout',
|
||||
'409'=>'Conflict',
|
||||
'410'=>'Gone',
|
||||
'411'=>'Length Required',
|
||||
'412'=>'Precondition Failed',
|
||||
'413'=>'Request Entity Too Large',
|
||||
'414'=>'Request-URI Too Long',
|
||||
'415'=>'Unsupported Media Type',
|
||||
'416'=>'Requested Range Not Satisfiable',
|
||||
'417'=>'Expectation Failed',
|
||||
'500'=>'Internal Server Error',
|
||||
'501'=>'Not Implemented',
|
||||
'502'=>'Bad Gateway',
|
||||
'503'=>'Service Unavailable',
|
||||
'504'=>'Gateway Timeout',
|
||||
'505'=>'HTTP Version Not Supported',
|
||||
);
|
||||
$statusMessage = $statusMessageList[$code];
|
||||
if(!$statusMessage) $statusMessage = 'OK';
|
||||
|
||||
Context::set('http_status_code', $code);
|
||||
Context::set('http_status_message', $statusMessage);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
var $message = 'success'; // / "Error message (if success, it is not an error)
|
||||
|
||||
var $variables = array(); // /< an additional variable
|
||||
var $httpStatusCode = NULL; ///< http status code.
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
|
|
@ -37,6 +38,16 @@
|
|||
return $this->error;
|
||||
}
|
||||
|
||||
function setHttpStatusCode($code = '200')
|
||||
{
|
||||
$this->httpStatusCode = $code;
|
||||
}
|
||||
|
||||
function getHttpStatusCode()
|
||||
{
|
||||
return $this->httpStatusCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Setter to set set the error message
|
||||
* @param[in] $message a messge string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue