Make the error page more flexible

This commit is contained in:
Kijin Sung 2016-02-12 14:12:22 +09:00
parent 98ef1bcafd
commit 81ef35a887
4 changed files with 39 additions and 16 deletions

View file

@ -1468,15 +1468,37 @@ class Context
} }
else else
{ {
self::displayErrorPage(_XE_SITELOCK_TITLE_, _XE_SITELOCK_MESSAGE_, 503);
}
exit;
}
/**
* Display a generic error page and exit.
*
* @param string $title
* @param string $message
* @return void
*/
public static function displayErrorPage($title = 'Error', $message = '', $status = 500)
{
// Change current directory to the Rhymix installation path.
chdir(\RX_BASEDIR);
// Set the title.
self::setBrowserTitle(self::getSiteTitle()); self::setBrowserTitle(self::getSiteTitle());
self::addBrowserTitle($title);
// Set the message.
$oMessageObject = getView('message'); $oMessageObject = getView('message');
$oMessageObject->setHttpStatusCode(503);
$oMessageObject->setError(-1); $oMessageObject->setError(-1);
$oMessageObject->setMessage(_XE_SITELOCK_TITLE_); $oMessageObject->setHttpStatusCode($status);
$oMessageObject->dispMessage(); $oMessageObject->setMessage($title);
$oMessageObject->dispMessage($message);
// Display the message.
$oModuleHandler = new ModuleHandler; $oModuleHandler = new ModuleHandler;
$oModuleHandler->displayContent($oMessageObject); $oModuleHandler->displayContent($oMessageObject);
}
exit; exit;
} }

View file

@ -17,7 +17,7 @@ class messageView extends message
/** /**
* @brief Display messages * @brief Display messages
*/ */
function dispMessage() function dispMessage($detail = null)
{ {
// Get configurations (using module model object) // Get configurations (using module model object)
$oModuleModel = getModel('module'); $oModuleModel = getModel('module');
@ -58,9 +58,10 @@ class messageView extends message
{ {
if(strncasecmp('https://', Context::getRequestUri(), 8) === 0) $ssl_mode = true; if(strncasecmp('https://', Context::getRequestUri(), 8) === 0) $ssl_mode = true;
} }
Context::set('ssl_mode',$ssl_mode);
Context::set('ssl_mode', $ssl_mode);
Context::set('system_message', nl2br($this->getMessage())); Context::set('system_message', nl2br($this->getMessage()));
Context::set('system_message_detail', nl2br($detail));
$this->setTemplateFile('system_message'); $this->setTemplateFile('system_message');
} }

View file

@ -8,7 +8,7 @@
<div id="access"> <div id="access">
<div class="login-header"> <div class="login-header">
<h1><i class="icon-user"></i> {$system_message}</h1> <h1><i class="icon-user"></i> {$system_message}</h1>
<div class="message" cond="defined('_XE_SITELOCK_MESSAGE_')">{constant('_XE_SITELOCK_MESSAGE_')}</div> <div class="message" cond="$system_message_detail">{$system_message_detail}</div>
</div> </div>
<div class="login-body"> <div class="login-body">
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/skins/default/system_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}"> <div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/skins/default/system_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">

View file

@ -5,7 +5,7 @@
<div id="access"> <div id="access">
<div class="login-header"> <div class="login-header">
<h1>{$system_message}</h1> <h1>{$system_message}</h1>
<div class="message" cond="defined('_XE_SITELOCK_MESSAGE_')">{constant('_XE_SITELOCK_MESSAGE_')}</div> <div class="message" cond="$system_message_detail">{$system_message_detail}</div>
</div> </div>
<div cond="!$is_logged"> <div cond="!$is_logged">
<div class="login-body"> <div class="login-body">
@ -21,13 +21,13 @@
<input type="text" name="user_id" id="uid" title="{$lang->user_id}" placeholder="{$lang->user_id}" required autofocus cond="$member_config->identifier != 'email_address'" /> <input type="text" name="user_id" id="uid" title="{$lang->user_id}" placeholder="{$lang->user_id}" required autofocus cond="$member_config->identifier != 'email_address'" />
<input type="email" name="user_id" id="uid" title="{$lang->email_address}" placeholder="{$lang->email_address}" required autofocus cond="$member_config->identifier == 'email_address'" /> <input type="email" name="user_id" id="uid" title="{$lang->email_address}" placeholder="{$lang->email_address}" required autofocus cond="$member_config->identifier == 'email_address'" />
<input type="password" name="password" id="upw" title="{$lang->password}" placeholder="{$lang->password}" required /> <input type="password" name="password" id="upw" title="{$lang->password}" placeholder="{$lang->password}" required />
<label for="keepid" cond="!defined('_XE_SITELOCK_MESSAGE_')"> <label for="keepid" cond="!$system_message_detail">
<input type="checkbox" name="keep_signed" id="keepid" class="inputCheck" value="Y" onclick="jQuery('#warning')[(jQuery('#keepid:checked').size()&gt;0?'addClass':'removeClass')]('open');" /> <input type="checkbox" name="keep_signed" id="keepid" class="inputCheck" value="Y" onclick="jQuery('#warning')[(jQuery('#keepid:checked').size()&gt;0?'addClass':'removeClass')]('open');" />
{$lang->keep_signed} {$lang->keep_signed}
</label> </label>
</div> </div>
<p><button type="submit" class="button" href="#" onclick="$('#message_login_form').submit()"> <p><button type="submit" class="button" href="#" onclick="$('#message_login_form').submit()">
<!--@if(defined('_XE_SITELOCK_MESSAGE_'))--> <!--@if($system_message_detail)-->
{$lang->msg_administrator_login} {$lang->msg_administrator_login}
<!--@else--> <!--@else-->
{$lang->cmd_login} {$lang->cmd_login}
@ -35,7 +35,7 @@
</button></p> </button></p>
</form> </form>
</div> </div>
<div class="login-footer" cond="!defined('_XE_SITELOCK_MESSAGE_')"> <div class="login-footer" cond="!$system_message_detail">
<a href="{getUrl('', 'act', 'dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a> <a href="{getUrl('', 'act', 'dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a>
<span class="bar">|</span> <span class="bar">|</span>
<a href="{getUrl('', 'act', 'dispMemberSignUpForm')}">{$lang->cmd_signup}</a> <a href="{getUrl('', 'act', 'dispMemberSignUpForm')}">{$lang->cmd_signup}</a>