merge from 1.7.3.5(r13153:r13167)

git-svn-id: http://xe-core.googlecode.com/svn/trunk@13168 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2013-09-29 23:32:39 +00:00
parent cc47d2b247
commit 2d3f149b5a
2042 changed files with 129266 additions and 126243 deletions

View file

@ -9,10 +9,10 @@
<title xml:lang="ru">Отображение ошибок</title>
<title xml:lang="zh-TW">錯誤訊息</title>
<title xml:lang="tr">Hata Görüntüleme</title>
<description xml:lang="ko">오류 및 각종 시스템 메세지 관리 모듈</description>
<description xml:lang="ko">오류 및 각종 시스템 메세지를 관리합니다.</description>
<description xml:lang="jp">エラー及びシステムメッセージ管理モジュール</description>
<description xml:lang="zh-CN">管理错误信息及各种系统信息的模块。</description>
<description xml:lang="en">This module managers erros and system messages.</description>
<description xml:lang="en">Erros and system messages manager.</description>
<description xml:lang="vi">Module này quản lý những thông báo lỗi của hệ thống.</description>
<description xml:lang="es">Este módulo es para manejar los errores y mensajes del sistema.</description>
<description xml:lang="ru">Этот модуль управляет ошибками и системными сообщениями.</description>

View file

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispMessage" type="view" standalone="true" index="true" />
<action name="dispMessageAdminConfig" type="view" standalone="true" admin_index="true" />
<action name="procMessageAdminInsertConfig" type="controller" standalone="true" />
</actions>
<grants />
<permissions />
<actions>
<action name="dispMessage" type="view" index="true" />
<action name="dispMessageAdminConfig" type="view" admin_index="true" />
<action name="procMessageAdminInsertConfig" type="controller" />
<action name="getMessageAdminColorset" type="model" />
</actions>
</module>

View file

@ -13,7 +13,7 @@
<value xml:lang="vi"><![CDATA[Hiển thị lỗi]]></value>
</item>
<item name="about_skin">
<value xml:lang="ko"><![CDATA[오류 메시지용 스킨을 지정하실 수 있습니다.]]></value>
<value xml:lang="ko"><![CDATA[오류 메시지용 스킨을 지정 수 있습니다.]]></value>
<value xml:lang="en"><![CDATA[You may select skins for error messages.]]></value>
<value xml:lang="jp"><![CDATA[エラーメッセージを表示する際のスキンを指定できます。]]></value>
<value xml:lang="zh-CN"><![CDATA[提示信息可以指定皮肤。]]></value>

File diff suppressed because one or more lines are too long

View file

@ -38,10 +38,12 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0}
.ff li{margin:0 0 5px 0;padding:0}
.ff label{margin-right:10px}
.ff label+input[type=text],
.ff label+input[type=email],
.ff label+input[type=password],
.ff label+textarea,
.ff label+select{display:block;width:96%;font-size:14px;margin:0 0 5px 0}
.ff label+input[type=text],
.ff label+input[type=email],
.ff label+input[type=password],
.ff label+textarea{padding:5px}
/* Help */
@ -56,6 +58,5 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0}
.bn[type=submit],
.bn[type=button]{height:28px}
.bn[href]{height:26px}
.bn.dark{border-color:#666;background:#777 -webkit-gradient(linear,0% 0%,0% 100%,from(#7e7c78),to(#5c5b58));background:#777 -moz-linear-gradient(top,#7e7c78,#5c5b58);background-color:#777;color:#fff;box-shadow:0 0 1px #fff inset;-moz-box-shadow:0 0 1px #fff inset;-webkit-box-shadow:0 0 1px #fff inset}
.bn.white{border-color:#b5b5b5;background:#1b1b1b -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#f6f6f6),color-stop(0.5,#f0f0f0),color-stop(0.5,#e4e4e4));background:#1b1b1b -moz-linear-gradient(top,#fff,#e4e4e4);background-color:#fff;color:#000}
.message{border:1px solid #ddd;background:#f8f8f8;margin:1em 0;padding:0 1em;border-radius:5px;line-height:1.4;font-size:12px}.message p{margin:1em 0!important}.message em{font-style:normal;color:#e00}.message.info,.message.error,.message.update{padding-left:55px}.message.info{border-color:#e0e8ec;background:#edf9ff url(../../../../common/img/msg.Info.png) no-repeat 1em .5em}.message.error{border-color:#efdcdc;background:#ffecec url(../../../../common/img/msg.error.png) no-repeat 1em .5em}.message.update{border-color:#eae9dc;background:#fffdef url(../../../../common/img/msg.update.png) no-repeat 1em .5em}
.bn.dark{border-color:#666;background:-webkit-linear-gradient(top,#7e7c78,#5c5b58);background:-moz-linear-gradient(top,#7e7c78,#5c5b58);background:-o-linear-gradient(top,#7e7c78,#5c5b58);background:-ms-linear-gradient(top,#7e7c78,#5c5b58);background:linear-gradient(top,#7e7c78,#5c5b58);background-color:#777;color:#fff;box-shadow:0 0 1px #fff inset;-moz-box-shadow:0 0 1px #fff inset;-webkit-box-shadow:0 0 1px #fff inset}
.bn.white{border-color:#b5b5b5;background:-webkit-linear-gradient(top,#fff,#f0f0f0 50%,#e4e4e4 50%,#f6f6f6);background:-moz-linear-gradient(top,#fff,#f0f0f0 50%,#e4e4e4 50%,#f6f6f6);background:-o-linear-gradient(top,#fff,#f0f0f0 50%,#e4e4e4 50%,#f6f6f6);background:-ms-linear-gradient(top,#fff,#f0f0f0 50%,#e4e4e4 50%,#f6f6f6);background:linear-gradient(top,#fff,#f0f0f0 50%,#e4e4e4 50%,#f6f6f6);background-color:#fff;color:#000}

View file

@ -3,7 +3,7 @@
<div class="hx h2">
<h2>{$system_message}</h2>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/m.skin/default/system_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div class="co">
@ -15,13 +15,15 @@
{@ Context::addJsFile("./common/js/xml_handler.js", true, '', -100000) }
{@ Context::addJsFile("./common/js/xml_js_filter.js", true, '', -100000) }
<!--%import("./filter/openid_login.xml")-->
<div class="mLogin" id="gLogin">
<form action="{getUrl('','act','procMemberLogin')}" method="post" ruleset="@login" id="gForm" class="ff">
<div class="mLogin">
<form action="{getUrl('','act','procMemberLogin')}" method="post" ruleset="@login" class="ff">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<input type="hidden" name="xe_validator_id" value="modules/message/m.skin/default/system_message/1" />
<fieldset>
<ul>
<li><label for="uid"><!--@if($member_config->identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label><input type="text" name="user_id" id="uid" value="" /></li>
<li cond="$member_config->identifier == 'user_id'"><label for="uid">{$lang->user_id}</label><input type="text" name="user_id" id="uid" required autofocus /></li>
<li cond="$member_config->identifier != 'user_id'"><label for="uid">{$lang->email_address}</label><input type="email" name="user_id" id="uid" required autofocus /></li>
<li><label for="upw">{$lang->password}</label><input type="password" name="password" id="upw" value="" /></li>
</ul>
<p>
@ -35,31 +37,10 @@
<ul class="hp">
<li><a href="{getUrl('','act','dispMemberFindAccount')}"><span>{$lang->cmd_find_member_account}</span></a></li>
<li><a href="{getUrl('','act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a></li>
<!--@if($member_config->enable_openid=='Y')-->
<li><a href="#oLogin">Open ID</a></li>
<!--@end-->
</ul>
</fieldset>
</form>
</div>
<!-- OpenID -->
<!--@if($member_config->enable_openid=='Y')-->
<div class="mLogin" id="oLogin">
<form action="{getUrl('module','member','act','procMemberOpenIDLogin')}" method="post" onsubmit="return procFilter(this, openid_login)" id="oForm" class="ff">
<fieldset>
<ul>
<li><label for="openid">Open ID</label><input type="text" name="openid" id="openid" value="" /></li>
</ul>
<div class="buttonArea">
<input type="submit" value="{$lang->cmd_login}" class="bn dark" />
</div>
<ul class="hp">
<li><a href="#gLogin">{$lang->cmd_common_id}</a></li>
</ul>
</fieldset>
</form>
</div>
<!--@end-->
<!--@end-->
<!--@if($is_logged)-->
<div class="logOut">
@ -69,7 +50,7 @@
</div>
</div>
<script type="text/javascript">
<script>
jQuery(function($){
var keep_msg = $('#keep_msg');
keep_msg.hide();

View file

@ -1,33 +1,35 @@
<?php
/**
* @class messageAdminController
* @author NHN (developers@xpressengine.com)
* @brief admin controller class of message module
**/
/**
* @class messageAdminController
* @author NHN (developers@xpressengine.com)
* @brief admin controller class of message module
*/
class messageAdminController extends message
{
/**
* @brief Initialization
*/
function init()
{
}
class messageAdminController extends message {
/**
* @brief Configuration
*/
function procMessageAdminInsertConfig()
{
// Get information
$args = Context::gets('skin', 'mskin', 'colorset', 'mcolorset');
// Create a module Controller object
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('message',$args);
if(!$output->toBool()) return $output;
/**
* @brief Initialization
**/
function init() {
}
$this->setMessage('success_updated');
/**
* @brief Configuration
**/
function procMessageAdminInsertConfig() {
// Get information
$args = Context::gets('skin', 'mskin');
// Create a module Controller object
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('message',$args);
if(!$output->toBool()) return $output;
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMessageAdminConfig');
$this->setRedirectUrl($returnUrl);
}
}
?>
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMessageAdminConfig');
$this->setRedirectUrl($returnUrl);
}
}
/* End of file message.admin.controller.php */
/* Location: ./modules/message/message.admin.controller.php */

View file

@ -0,0 +1,29 @@
<?php
class messageAdminModel extends message{
public function getMessageAdminColorset()
{
$skin = Context::get('skin');
$type = Context::get('type') == 'M' ? 'M' : 'P';
Context::set('type', $type);
$dir = $type == 'P' ? 'skins' : 'm.skins';
if(!$skin)
{
$tpl = '';
}
else
{
$oModuleModel = getModel('module'); /* @var $oModuleModel moduleModel */
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin, $dir);
Context::set('skin_info', $skin_info);
$config = $oModuleModel->getModuleConfig('message');
Context::set('config', $config);
$oTemplate = TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
}
$this->add('tpl', $tpl);
}
}

View file

@ -1,45 +1,45 @@
<?php
/**
* @class messageAdminView
* @author NHN (developers@xpressengine.com)
* @brief admin view class of the message module
**/
/**
* @class messageAdminView
* @author NHN (developers@xpressengine.com)
* @brief admin view class of the message module
*/
class messageAdminView extends message
{
/**
* @brief Initialization
*/
function init()
{
}
class messageAdminView extends message {
/**
* @brief Configuration
*/
function dispMessageAdminConfig()
{
// Get a list of skins(themes)
$oModuleModel = &getModel('module');
/**
* @brief Initialization
**/
function init() {
}
$skin_list = $oModuleModel->getskins($this->module_path);
Context::set('skin_list', $skin_list);
/**
* @brief Configuration
**/
function dispMessageAdminConfig() {
// Get a list of skins(themes)
$oModuleModel = &getModel('module');
$mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
Context::set('mskin_list', $mskin_list);
$skin_list = $oModuleModel->getskins($this->module_path);
Context::set('skin_list', $skin_list);
// Get configurations (using module model object)
$config = $oModuleModel->getModuleConfig('message');
Context::set('config',$config);
$mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
Context::set('mskin_list', $mskin_list);
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
// Get configurations (using module model object)
$config = $oModuleModel->getModuleConfig('message');
Context::set('config',$config);
//Security
$security = new Security();
$security->encodeHTML('skin_list..title', 'mskin_list..title');
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
//Security
$security = new Security();
$security->encodeHTML('skin_list..title', 'mskin_list..title');
$this->setTemplateFile('config');
}
}
?>
$this->setTemplateFile('config');
}
}
/* End of file message.admin.view.php */
/* Location: ./modules/message/message.admin.view.php */

View file

@ -1,68 +1,70 @@
<?php
/**
* @class message
* @author NHN (developers@xpressengine.com)
* @brief high class of message module
**/
/**
* @class message
* @author NHN (developers@xpressengine.com)
* @brief high class of message module
*/
class message extends ModuleObject
{
/**
* @brief Implement if additional tasks are necessary when installing
*/
function moduleInstall()
{
return new Object();
}
class message extends ModuleObject {
/**
* @brief a method to check if successfully installed
*/
function checkUpdate()
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
/**
* @brief Implement if additional tasks are necessary when installing
**/
function moduleInstall() {
return new Object();
}
/**
* @brief a method to check if successfully installed
**/
function checkUpdate()
if($config->skin)
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
if($config->skin)
$config_parse = explode('.', $config->skin);
if (count($config_parse) > 1)
{
$config_parse = explode('.', $config->skin);
if (count($config_parse) > 1)
$template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
if(is_dir($template_path)) return true;
}
}
return false;
}
/**
* @brief Execute update
*/
function moduleUpdate()
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
if($config->skin)
{
$config_parse = explode('.', $config->skin);
if (count($config_parse) > 1)
{
$template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
if(is_dir($template_path))
{
$template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
if(is_dir($template_path)) return true;
$config->skin = implode('|@|', $config_parse);
$oModuleController = &getController('module');
$oModuleController->updateModuleConfig('message', $config);
}
}
return false;
}
}
return new Object();
}
/**
* @brief Execute update
**/
function moduleUpdate()
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
if($config->skin)
{
$config_parse = explode('.', $config->skin);
if (count($config_parse) > 1)
{
$template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
if(is_dir($template_path))
{
$config->skin = implode('|@|', $config_parse);
$oModuleController = &getController('module');
$oModuleController->updateModuleConfig('message', $config);
}
}
}
return new Object();
}
/**
* @brief Re-generate the cache file
**/
function recompileCache() {
}
}
?>
/**
* @brief Re-generate the cache file
*/
function recompileCache()
{
}
}
/* End of file message.class.php */
/* Location: ./modules/message/message.class.php */

View file

@ -1,43 +1,45 @@
<?php
require_once(_XE_PATH_.'modules/message/message.view.php');
require_once(_XE_PATH_.'modules/message/message.view.php');
class messageMobile extends messageView
{
/**
* @brief Initialization
**/
function init()
{
}
class messageMobile extends messageView {
/**
* @brief Message output
**/
function dispMessage()
{
// Get configurations (using module model object)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
if(!$config->mskin) $config->mskin = 'default';
// Set the template path
$template_path = sprintf('%sm.skins/%s', $this->module_path, $config->mskin);
// Get the member configuration
$oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member');
Context::set('member_config', $member_config);
// Set a flag to check if the https connection is made when using SSL and create https url
$ssl_mode = false;
if($member_config->enable_ssl == 'Y')
{
if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
}
Context::set('ssl_mode',$ssl_mode);
/**
* @brief Initialization
**/
function init() {
}
Context::set('system_message', nl2br($this->getMessage()));
/**
* @brief Message output
**/
function dispMessage() {
// Get configurations (using module model object)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('message');
if(!$config->mskin) $config->mskin = 'default';
// Set the template path
$template_path = sprintf('%sm.skins/%s', $this->module_path, $config->mskin);
// Get the member configuration
$oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member');
Context::set('member_config', $member_config);
// Set a flag to check if the https connection is made when using SSL and create https url
$ssl_mode = false;
if($member_config->enable_ssl == 'Y') {
if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
}
Context::set('ssl_mode',$ssl_mode);
Context::set('act', 'procMemberLogin');
Context::set('mid', '');
Context::set('system_message', nl2br($this->getMessage()));
Context::set('act', 'procMemberLogin');
Context::set('mid', '');
$this->setTemplatePath($template_path);
$this->setTemplateFile('system_message');
}
}
?>
$this->setTemplatePath($template_path);
$this->setTemplateFile('system_message');
}
}
/* End of file message.mobile.php */
/* Location: ./modules/message/message.mobile.php */

View file

@ -3,26 +3,29 @@
* @class messageView
* @author NHN (developers@xpressengine.com)
* @brief view class of the message module
**/
class messageView extends message {
*/
class messageView extends message
{
/**
* @brief Initialization
**/
function init()
*/
function init()
{
}
/**
* @brief Display messages
**/
function dispMessage()
*/
function dispMessage()
{
// Get configurations (using module model object)
$oModuleModel = &getModel('module');
$this->module_config = $config = $oModuleModel->getModuleConfig('message', $this->module_info->site_srl);
if(!$config)
{
$config = new stdClass();
}
if(!$config->skin)
{
@ -50,7 +53,8 @@ class messageView extends message {
Context::set('member_config', $member_config);
// Set a flag to check if the https connection is made when using SSL and create https url
$ssl_mode = false;
if($member_config->enable_ssl == 'Y') {
if($member_config->enable_ssl == 'Y')
{
if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
}
Context::set('ssl_mode',$ssl_mode);
@ -60,4 +64,5 @@ class messageView extends message {
$this->setTemplateFile('system_message');
}
}
?>
/* End of file message.view.php */
/* Location: ./modules/message/message.view.php */

File diff suppressed because one or more lines are too long

View file

@ -1,33 +1,33 @@
@charset "utf-8";
/* NHN | dece24@nhncorp.com */
#loginAccess{position:relative;width:384px;border:2px solid #757575;margin:30px auto;padding:20px 0 0 0;background:#fff;font-size:12px;font-family:Tahoma;line-height:normal;border-radius:5px;box-shadow:0 0 10px #ccc}
#loginAccess form{margin:0;padding:0}
#loginAccess fieldset{border:0;margin:0;padding:0}
#loginAccess h1{margin:0 28px 20px 28px;font-size:12px;color:#e77161}
#loginAccess ul{margin:0;padding:0;list-style:none}
#loginAccess .idpw{margin:0 28px 20px 28px}
#loginAccess .idpw li{margin:0 0 5px 0}
#loginAccess .iText{font-size:12px;height:22px;color:#767676;font-weight:bold;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1}
#loginAccess .idpw .iText{width:316px;padding:8px 0 0 10px}
#loginAccess .inputCheck{width:13px;height:13px;margin:0;padding:0;vertical-align:middle}
#loginAccess label{vertical-align:middle}
#loginAccess #warning{display:none;margin:0 0 20px 0}
#loginAccess #warning.open{display:block}
#loginAccess #warning p{margin:0}
#loginAccess .buttonArea{position:relative;margin:0 28px;padding:0;color:#767676;*zoom:1}
#loginAccess .buttonArea .keeping{position:relative;margin:0 0 20px 0;height:32px;line-height:32px}
#loginAccess #gLogin .buttonArea .buttonAccount{position:absolute;top:0;right:0}
#loginAccess .buttonAccount,
#loginAccess .buttonAccount a,
#loginAccess .buttonAccount input{position:relative;display:inline-block;margin:0;padding:0;overflow:visible;height:32px;line-height:32px;font-size:12px;font-weight:bold;color:#fff;vertical-align:middle;cursor:pointer;border:0;text-decoration:none !important;background:transparent url(./images/buttonAction.gif) no-repeat}
#loginAccess .buttonAccount{margin:0 4px 0 0;background-position:left top}
#loginAccess .buttonAccount a,
#loginAccess .buttonAccount input{left:4px;background-position:right top;vertical-align:top;padding:0 24px 0 36px}
#loginAccess .help{position:relative;padding:15px 0;background:#fafafa;border-top:1px solid #d9d9d9;text-align:center;border-radius:0 0 5px 5px}
#loginAccess .help li{display:inline;border-left:1px solid #c3c3c3;padding:0 0 0 10px;margin:0 6px 0 0;line-height:1}
#loginAccess .help li.first{border:0;padding:0}
#loginAccess .help a{text-decoration:none;color:#333}
#loginAccess .help a:hover,
#loginAccess .help a:active,
#loginAccess .help a:focus{text-decoration:underline}
#loginAccess .logOut{text-align:left;margin:0 28px;padding:0 0 20px 0}
@font-face{font-family:NG;src:url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.eot);src:local(),url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.woff) format('woff')}
body, #access table, #access input, #access textarea, #access select, #access button, #access label{font-family:,NanumGothic,NG,,Dotum,Arial,Helvetica,sans-serif;font-size:13px}
@media all and (max-width:980px){
body, #access table, #access input, #access textarea, #access select, #access button, #access label{font-family:,Dotum,Arial,Helvetica,sans-serif}
}
#access{width:400px;margin:30px auto;background-color:#ffffff;border:1px solid #999;border-radius:6px;box-shadow:0 3px 7px #ccc;box-sizing:border-box}
#access>.login-header{padding:9px 15px;border-bottom:1px solid #eee}
#access>.login-header>h1{margin:0;font-size:16px;line-height:1.4;font-weight:600;color:#666}
#access>.login-header>h1>i{opacity:.5;filter:alpha(opacity=50);margin:2px 0 0 0}
#access>.login-body{max-height:400px;padding:15px}
#access>.login-body>*:first-child{margin-top:0}
#access>.login-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff; color:#ccc}
#access>.login-footer:before,
#access>.login-footer:after{display:table;line-height:0;content:"";clear:both}
#access .control-group{position:relative;padding:0 14px 0 0;margin:0;clear:both}
#access .control-group:before{content:"";display:block;clear:both}
#access form{margin:0}
#access fieldset{margin:0}
#access label{cursor:pointer;display:inline-block}
#access input[type="text"],
#access input[type="email"],
#access input[type="password"]{width:100%}
#access input[type="checkbox"]{margin:0}
#access .btn{border-radius:2px;overflow:visible;font-size:14px;line-height:18px;height:auto;padding:3px 9px;text-decoration:none}
#access .submit{position:absolute;top:0;right:0}
#access p{margin:10px 0}
#access #warning{margin-right:-14px}
#access a{color: #0088cc;text-decoration: none;}
@media all and (max-width:480px){
#access{position:static;margin:0;width:100%}
}

View file

@ -10,29 +10,14 @@ function completeMessageOpenIDLogin(ret_obj, response_tags) {
location.href = redirect_url;
}
function doLogin(o,filter){
jQuery('input.iText',o).each(function(){
var t = jQuery(this);
if(t.attr('title').length>0 && t.attr('title') == t.val()) t.val('');
jQuery(function($){
$('#warning').hide();
$('#keepid').change(function(){
var $warning = $('#warning');
if($(this).is(':checked')){
$warning.slideDown(200);
} else {
$warning.slideUp(200);
}
});
procFilter(o,filter);
initLoginTitleMsg();
return false;
}
function initLoginTitleMsg(){
jQuery('.gLogin, .mLogin').find('input.iText').focus(function(){
var t = jQuery(this);
if(t.attr('title').length>0 && t.attr('title')==t.val()) t.val('');
}).blur(function(){
var t = jQuery(this);
if(t.attr('title').length>0 && t.val()=='') t.val(t.attr('title'));
}).focus().blur();
}
jQuery(function(){
initLoginTitleMsg();
});
});

View file

@ -1,43 +1,51 @@
<load target="../../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
<block cond="!$is_logged && $module == 'admin'">
<load target="../../../../common/css/bootstrap.min.css" index="1" />
</block>
<load target="./filter/openid_login.xml" />
<load target="./message.css" />
<load target="./message.css" index="2" />
<load target="./message.js" />
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div id="loginAccess" class="gLogin">
<h1>{$system_message}</h1>
<div class="mLogin" id="gLogin" cond="!$is_logged && $module == 'admin'">
<form ruleset="@login" action="{getUrl('','act','procMemberLogin')}" method="post" id="gForm">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<div id="access">
<div class="login-header">
<h1><i class="icon-user"></i> {$system_message}</h1>
</div>
<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}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form cond="!$is_logged && $module == 'admin'" ruleset="@login" action="{getUrl('','act','procMemberLogin')}" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<input type="hidden" name="xe_validator_id" value="modules/message/skins/default/system_message/1" />
<fieldset>
<ul class="idpw">
<li><input type="text" name="user_id" id="uid" value="" class="iText" title="{$lang->user_id}" /></li>
<li><input type="password" name="password" id="upw" value="" class="iText" title="{$lang->password}" /></li>
</ul>
<div class="buttonArea">
<p class="keeping">
<div class="control-group">
<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="password" name="password" id="upw" title="{$lang->password}" placeholder="{$lang->password}" required />
</div>
<div class="control-group">
<label for="keepid">
<input type="checkbox" name="keep_signed" id="keepid" class="inputCheck" value="Y" onclick="jQuery('#warning')[(jQuery('#keepid:checked').size()>0?'addClass':'removeClass')]('open');" />
<label for="keepid">{$lang->keep_signed}</label>
</p>
<div id="warning" class="">
<p>{$lang->about_keep_warning}</p>
</div>
<span class="buttonAccount"><input type="submit" value="{$lang->cmd_login}" /></span>
{$lang->keep_signed}
</label>
<p id="warning">{$lang->about_keep_warning}</p>
<input type="submit" value="{$lang->cmd_login}" class="submit btn btn-inverse" />
</div>
</fieldset>
</form>
<ul class="help">
<li class="first"><a href="{getUrl('','act','dispMemberFindAccount')}"><span>{$lang->cmd_find_member_account}</span></a></li>
<li><a href="{getUrl('','act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a></li>
</ul>
<p cond="$is_logged" style="text-align:center">
<a href="{getUrl('act','dispMemberLogout','module','')}" class="btn">{$lang->cmd_logout}</a>
</p>
<p cond="!$is_logged && $module != 'admin'" style="text-align:center">
<a href="{getUrl('act','dispMemberLoginForm','module','', 'mid', '')}" class="btn">{$lang->cmd_login}</a>
</p>
</div>
<div class="logOut" cond="$is_logged && $module == 'admin'">
<span class="buttonAccount"><a href="{getUrl('act','dispMemberLogout','module','')}">{$lang->cmd_logout}</a></span>
</div>
<div class="logOut" cond="!$is_logged && $module != 'admin'">
<span class="buttonAccount"><a href="{getUrl('act','dispMemberLoginForm','module','', 'mid', '')}">{$lang->cmd_login}...</a></span>
<div class="login-footer" cond="!$is_logged">
<div class="pull-right">
<a href="{getUrl('','act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a>
|
<a href="{getUrl('','act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a>
</div>
</div>
</div>

View file

@ -0,0 +1,16 @@
<!--@foreach($skin_info->colorset as $key => $val)-->
<!--@if($val->screenshot)-->
{@ $_img_info = getImageSize($val->screenshot); $_height =
$_img_info[1]+40; $_width = $_img_info[0]+20; $_talign = "center"; }
<!--@else-->
{@ $_width = 200; $_height = 20; $_talign = "left"; }
<!--@end-->
<div style="display: inline-block; *display: inline; *zoom: 1; text-align: {$_talign}">
<label for="<!--@if($type == 'M')-->m<!--@end-->colorset_{$key}" class="x_inline">
<input type="radio" name="<!--@if($type == 'M')-->m<!--@end-->colorset" value="{$val->name}" id="<!--@if($type == 'M')-->m<!--@end-->colorset_{$key}" <!--@if(($type == 'M' && $config->mcolorset==$val->name) || ($type == 'P' && $config->colorset==$val->name))-->checked="checked"<!--@end-->/>{$val->title}
</label>
<!--@if($val->screenshot)-->
<br /> <img src="../../../{$val->screenshot}" alt="{$val->title}" style="border: 1px solid #888888; padding: 2px; margin: 2px;" />
<!--@end-->
</div>
<!--@end-->

View file

@ -1,35 +1,50 @@
<h1 class="h1">{$lang->message} {$lang->cmd_management}</h1>
<load target="js/config.js" />
<div class="x_page-header">
<h1>
{$lang->message}
<a href="#aboutSkin" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
</h1>
</div>
<p class="x_alert x_alert-info" id="aboutSkin" hidden>{$lang->about_skin}</p>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/tpl/config/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="./" method="post" class="form">
<form action="./" method="post" class="x_form-horizontal">
<input type="hidden" name="module" value="message" />
<input type="hidden" name="act" value="procMessageAdminInsertConfig" />
<p>{$lang->about_skin}</p>
<ul>
<li>
<p class="q"><label for="skin">{$lang->skin}</label></p>
<p class="a">
<select name="skin" id="skin">
<!--@foreach($skin_list as $key => $val)-->
<option value="{$key}" <!--@if($key==$config->skin)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
</p>
</li>
<li>
<p class="q"><label for="mskin">{$lang->mobile_skin}</label></p>
<p class="a">
<select name="mskin" id="mskin">
<!--@foreach($mskin_list as $key => $val)-->
<option value="{$key}" <!--@if($key==$config->mskin)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
</p>
</li>
</ul>
<input type="hidden" name="xe_validator_id" value="modules/message/tpl/config/1" />
<div class="x_control-group">
<label for="skin" class="x_control-label">{$lang->skin}</label>
<div class="x_controls">
<select name="skin" id="skin" style="width:auto" onchange="doGetSkinColorset(this.options[this.selectedIndex].value)">
<option loop="$skin_list => $key, $val" value="{$key}" selected="selected"|cond="$key == $config->skin">{$val->title}</option>
</select>
</div>
</div>
<div id="colorset" class="x_control-group" style="display:none">
<label class="x_control-label" for="message_colorset">{$lang->colorset}</label>
<div class="x_controls">
<div id="message_colorset"></div>
</div>
</div>
<div class="x_control-group">
<label for="mskin" class="x_control-label">{$lang->mobile_skin}</label>
<div class="x_controls">
<select name="mskin" id="mskin" style="width:auto" onchange="doGetSkinColorset(this.options[this.selectedIndex].value, 'M')">
<option loop="$mskin_list => $key, $val" value="{$key}" selected="selected"|cond="$key == $config->mskin">{$val->title}</option>
</select>
</div>
</div>
<div id="mcolorset" class="x_control-group" style="display:none">
<label class="x_control-label" for="message_mcolorset">{$lang->colorset}</label>
<div class="x_controls">
<div id="message_mcolorset"></div>
</div>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_registration}" /></span>
<button class="x_btn x_btn-primary" type="submit">{$lang->cmd_registration}</button>
</div>
</form>

View file

@ -0,0 +1,45 @@
function doGetSkinColorset(skin, type) {
type = type == 'M' ? 'M' : 'P';
var params = {
'skin' : skin,
'type': type,
};
var response_tags = [ 'error', 'message', 'tpl' ];
function on_complete(ret) {
var $container = jQuery('#colorset');
if(type == 'M'){
$container = jQuery('#mcolorset');
}
var old_h = $container.is(':visible') ? $container.outerHeight() : 0;
if(ret.tpl == ''){
$container.hide();
}else{
$container.show();
var $colorset = jQuery('#message_colorset');
if(type == 'M'){
$colorset = jQuery('#message_mcolorset');
}
$colorset.html(ret.tpl);
}
var new_h = $container.is(':visible') ? $container.outerHeight() : 0;
try {
fixAdminLayoutFooter(new_h - old_h)
} catch (e) {};
}
exec_xml('message', 'getMessageAdminColorset', params, on_complete, response_tags);
}
jQuery(function($){
doGetSkinColorset($('#skin').val());
doGetSkinColorset($('#mskin').val(), 'M');
});