회원 모듈 simple world 다듬기 + 오류 표시 모듈 스킨 추가

This commit is contained in:
MinSoo Kim 2017-02-07 01:06:26 +09:00
parent eb543775c1
commit 0f6a2e0daa
11 changed files with 348 additions and 9 deletions

View file

@ -1 +1 @@
</section>
</section>

View file

@ -37,7 +37,6 @@
if(!$layout_info->customized_primary_color)
$layout_info->customized_primary_color = '#f44336';
}
</block>
<block cond="$layout_info->extra_var->primary_color->type !== 'select' && $layout_info->extra_var->customized_primary_color->type !== 'colorpicker'">
{@$layout_info->primary_color = 'blue';}
@ -64,4 +63,4 @@
<a href="{getUrl('', 'act',$key, 'mid', $mid, 'vid', $vid)}"><span>{lang($val)}</span></a>
</li>
</ul>
</div>
</div>

View file

@ -1,7 +1,7 @@
<include target="./common_header.html" />
<div class="signin">
<section class="sw-body">
<h1>{$lang->cmd_login}</h1>
<h1>{lang('member.cmd_login')}</h1>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/member/skins'" class="rx_member-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
@ -29,12 +29,12 @@
<div id="rx_member-warning" class="rx_member-notice">
{lang('member.about_keep_warning')}
</div>
<input type="submit" value="{$lang->cmd_login}" />
<input type="submit" value="{lang('member.cmd_login')}" />
</div>
</form>
</section>
<div class="sw-footer">
<a href="{getUrl('act','dispMemberSignUpForm')}">{lang('member.cmd_signup')}</a>
<a cond="$member_config->enable_join !== 'N'" href="{getUrl('act','dispMemberSignUpForm')}">{lang('member.cmd_signup')}</a>
</div>
</div>
<script>

View file

@ -8,7 +8,7 @@
<block loop="$displayDatas => $item">
<dt>{$item->title}<sup cond="$item->required || $item->mustRequired">*</sup></dt>
<dd cond="$item->value">{$item->value}</dd>
<dd cond="!$item->value" style="color:#ccc">&hellip;</dd>
<dd cond="!$item->value">&hellip;</dd>
</block>
<dt>{$lang->member_group}</dt>
<dd>{implode(', ', $memberInfo['group_list'])}</dd>
@ -26,5 +26,4 @@
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}">{$lang->cmd_modify_member_password}</a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}">{$lang->cmd_leave}</a>
</div>
<include target="./common_footer.html" />

View file

@ -5,7 +5,7 @@
<!--%load_js_plugin("ui")-->
<!--%load_js_plugin("ui.datepicker")-->
<section class="sw-body">
<h1 style="border-bottom:1px solid #ccc">{$lang->msg_update_member}</h1>
<h1>{$lang->msg_update_member}</h1>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/member/skins/simple_world/1'" class="rx_member-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>

View file

@ -0,0 +1 @@
</section>

View file

@ -0,0 +1,59 @@
<!--// Check layout. If it is Simple World, select layout primary colors as a primary color of this skin -->
{@
$material_colors = array(
'red' => '#f44336',
'crimson' => '#aa0000',
'pink' => '#e91e63',
'purple' => '#9c27b0',
'deep-purple' => '#673ab7',
'indigo' => '#3f51b5',
'deep-blue' => '#00397f',
'blue' => '#2196f3',
'light-blue' => '#03a9f4',
'cyan' => '#00bcd4',
'teal' => '#009688',
'green' => '#4caf50',
'light-green' => '#8bc34a',
'lime' => '#cddc39',
'yellow' => '#ffeb3b',
'amber' => '#ffc107',
'orange' => '#ff9800',
'deep-orange' => '#ff5722',
'brown' => '#795548',
'grey' => '#9e9e9e',
'blue-grey' => '#607d8b',
'black' => '#000000',
'white' => '#ffffff',
'customized' => $layout_info->customized_primary_color,
);
}
<block cond="$layout_info->extra_var->primary_color->type === 'select' || $layout_info->extra_var->customized_primary_color->type === 'colorpicker'">
{@
if(!$layout_info->primary_color && $layout_info->customized_primary_color)
$layout_info->primary_color = 'customized';
if(!$layout_info->primary_color)
$layout_info->primary_color = 'red';
if(!$layout_info->customized_primary_color)
$layout_info->customized_primary_color = '#f44336';
}
</block>
<block cond="$layout_info->extra_var->primary_color->type !== 'select' && $layout_info->extra_var->customized_primary_color->type !== 'colorpicker'">
{@$layout_info->primary_color = 'blue';}
</block>
<!--// Load styles -->
{@$skin_color = $material_colors[$layout_info->primary_color];}
<block cond="!$skin_color">
<!--@if(preg_match("/#([a-f0-9]{3}){1,2}/i", $layout_info->primary_color))-->
{@$skin_color = $layout_info->primary_color}
<!--@if(strlen($layout_info->primary_color) === 4)-->
{@$skin_color = $layout_info->primary_color[1].$layout_info->primary_color[1].$layout_info->primary_color[2].$layout_info->primary_color[2].$layout_info->primary_color[3].$layout_info->primary_color[3]}
<!--@endif-->
<!--@else-->
{@$skin_color = '#f44336'}
<!--@endif-->
</block>
{Context::set('simple_less_value', array('red' => hexdec(substr($skin_color, 1, 2)), 'green' => hexdec(substr($skin_color, 3, 2)), 'blue' => hexdec(substr($skin_color, 5, 2)) ))}
<load target="css/message.less" vars="$simple_less_value" />
<section class="rx_simple_message">

View file

@ -0,0 +1,206 @@
@charset "UTF-8";
/*
@method .text-contrast()
@author misol <misol.kr@gmail.com>
@brief Select a text color according to WCAG 2.0 contrast guideline. The calcualtion of contrast follows the formula on the guideline.
*/
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i >= 100) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) )) {
color: @bright_color;
}
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i >= 100) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) )) {
color: @dark_color;
}
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) )) and ( ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) ) > 4.5 * @multi ) {
color: @bright_color;
}
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) ) ) and ( ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) ) =< 4.5 * @multi ) {
.text-contrast(@bg_color; lighten(@bright_color, 5%); @dark_color; @multi; @i + 1);
}
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) )) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) > 4.5 * @multi ) {
color: @dark_color;
}
.text-contrast(@bg_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and (( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@bg_color) + 0.05) )) and ( ( (luma(@bg_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< 4.5 * @multi ) {
.text-contrast(@bg_color; @bright_color; darken(@dark_color, 5%); @multi; @i + 1);
}
/*
@method .bg-contrast()
@author misol <misol.kr@gmail.com>
@brief Select a background color, which has less contrast background color than WCAG 2.0 contrast guideline. On the WCAG 2.0 guideline, bigger string can have less contrast as 3.0.
*/
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i >= 100) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) )) {
background: @bright_color;
}
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i >= 100) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) )) {
background: @dark_color;
}
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) )) and ( ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) ) > 3 * @multi ) {
background: @bright_color;
}
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) ) ) and ( ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) ) =< 3 * @multi ) {
.bg-contrast(@text_color; lighten(@bright_color,3%); @dark_color; @multi; @i + 1);
}
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) )) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) > 3 * @multi ) {
background: @dark_color;
}
.bg-contrast(@text_color; @bright_color:#fff; @dark_color:#000; @multi:1; @i:0) when (@i < 100) and (( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) > ( ( luma(@bright_color) + 0.05) / ( luma(@text_color) + 0.05) )) and ( ( (luma(@text_color) + 0.05) / (luma(@dark_color) + 0.05) ) =< 3 * @multi ) {
.bg-contrast(@text_color; @bright_color; darken(@dark_color, 3%); @multi; @i + 1);
}
/* As LESS library in Rhymix substitude variables as an strings, convert colors as the color objects of LESS. */
@color: rgb(@red, @green, @blue);
/* As this file handle some wild-selectors to control display settings, hide inline script and style codes. */
script, style
{
display:none!important;
}
/* skin container, default settings */
.rx_simple_message
{
max-width:400px;
margin:30px auto;
box-sizing:border-box;
font-family: "맑은 고딕", "Apple SD Gothic Neo","나눔고딕",NanumGothic,'Nanum Gothic',Arial,Helvetica,sans-serif;
font-size: 14px;
padding: 0 5px;
}
.rx_simple_message a
{
color: @color;
text-decoration: none;
}
/* Horizontal align */
.rx_simple_message .pos-right
{
position:absolute;
right:0
}
/* message; error, info, update */
.rx_message-notice, .rx_message-notice.info
{
.bg-contrast(#000; lighten(@color, 5%); darken(@color, 5%); 5.0);
color: #000;
padding: 15px;
margin:0;
margin-top:0;
text-align: justify;
}
.rx_message-notice.error
{
background: #fff3e0;
.text-contrast(#fff3e0);
}
.rx_message-notice.update
{
background: #e8f5e9;
.text-contrast(#e8f5e9);
}
.rx_message-notice>*
{
padding: 0;
margin:0;
}
/* message forms */
.rx_simple_message .sw-body
{
box-sizing:border-box;
background:#ffffff;
margin: 0 0 20px;
box-shadow: 0 1px 2px rgba(0,0,0,0.16), 0 1px 2px rgba(0,0,0,0.23);
}
.rx_simple_message .sw-body>*
{
padding: 20px;
margin:0;
border: 0;
}
.rx_simple_message .sw-body h1
{
margin:0;
border-bottom: 1px solid #e0e0e0;
}
.rx_simple_message form div.control-group>*, .rx_simple_message .sw-body dl>*
{
display:block;
position:relative;
box-sizing: border-box;
width:100%;
min-height:25px;
margin:0px;
margin-top: 10px;
}
.rx_simple_message form div.control-group>*:first-child
{
margin-top: 0;
}
.rx_simple_message form div.control-group>input, .rx_simple_message form div.control-group>select
{
border: 1px solid #bdbdbd;
border-radius: 0;
font-size:14px;
line-height: 18px;
margin-top: 0;
padding:8px 8px 6px;
-webkit-appearance: none;
}
.rx_simple_message .sw-body dl>*
{
list-style:none;
border-bottom: 1px solid #e0e0e0;
}
.rx_simple_message .sw-body dl dt, .rx_simple_message form>div.control-group>label, .rx_simple_message form>div.control-group>div.control-label
{
font-weight: bold;
border:0;
}
.rx_simple_message form
{
overflow: hidden;
width:100%;
white-space: normal;
box-sizing: border-box;
}
.rx_simple_message form div.control-group>input[type="submit"], .rx_simple_message form div.control-group>input.btn.dateRemover, .rx_simple_message .sw-footer>a, .rx_simple_message .sw-anchor-buttons a
{
display:block;
padding: 10px;
vertical-align: bottom;
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 3.0);
font-weight: bold;
text-shadow: none;
border:0;
box-shadow: 0 1px 2px rgba(0,0,0,0.16), 0 1px 2px rgba(0,0,0,0.23);
color: #000;
}
.rx_simple_message form div.control-group>input[type="submit"], .rx_simple_message .sw-footer{
margin: 20px 0 0;
}
.rx_simple_message .sw-footer>a
{
display: block;
background: #fff;
font-size: 14px;
box-shadow: 0 1px 2px rgba(0,0,0,0.16), 0 1px 2px rgba(0,0,0,0.23);
color: #000;
font-weight: bold;
padding: 10px;
min-width:25px;
text-decoration: none;
text-align: center;
}
/* button hover */
.rx_simple_message form div.control-group>input[type="submit"]:hover, .rx_simple_message form div.control-group>input.btn.dateRemover:hover, .rx_simple_message .sw-footer>a:hover, .rx_simple_message .sw-anchor-buttons a:hover, .rx_simple_message .pagination ul li>a:hover, .rx_simple_message .rx_sw_list .content_delete button:hover,
.rx_simple_message form div.control-group>input[type="submit"]:focus, .rx_simple_message form div.control-group>input.btn.dateRemover:focus, .rx_simple_message .sw-footer>a:focus, .rx_simple_message .sw-anchor-buttons a:focus, .rx_simple_message .pagination ul li>a:focus, .rx_simple_message .rx_sw_list .content_delete button:focus
{
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
color: #000;
box-shadow: 0 2px 4px rgba(0,0,0,0.16), 0 2px 4px rgba(0,0,0,0.23);
}

View file

@ -0,0 +1,6 @@
<include target="./common_header.html" />
<section class="sw-body">
<h1>{$http_status_code} {$http_status_message}</h1>
<div class="rx_member-notice error">{lang('common.msg_module_is_not_exists')}</div>
</section>
<include target="./common_footer.html" />

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">네모의 꿈</title>
<title xml:lang="en">Rectangular World</title>
<description xml:lang="ko">깔끔한 면과 그림자를 이용한 메시지 스킨</description>
<description xml:lang="en">Simple rectangular planes and shadows</description>
<version>0.1</version>
<date>2017-02-07</date>
<author email_address="misol.kr@gmail.com" link="https://github.com/misol">
<name xml:lang="ko">misol</name>
<name xml:lang="en">misol</name>
</author>
<colorset type="colorpicker">
</colorset>
</skin>

View file

@ -0,0 +1,54 @@
<include target="./common_header.html" />
<div class="signin">
<section class="sw-body">
<h1>{$system_message}</h1>
<div class="rx_message-notice error" cond="$system_message_detail">{$system_message_detail}</div>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/skins/simple_world/system_message/1'" class="rx_message-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form cond="!$is_logged && $module == 'admin'" ruleset="@login" action="{getUrl('','act','procMemberLogin')}" method="post" id="fo_member_login">
<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/simple_world/system_message/1" />
<div class="control-group">
<label for="uid">
<block cond="$member_config->identifier == 'user_id'">
{lang('common.user_id')}
</block>
<block cond="$member_config->identifier != 'user_id'">
{lang('common.email_address')}
</block>
</label>
<input type="text" cond="$member_config->identifier == 'user_id'" name="user_id" id="uid" required title="{lang('common.user_id')}" />
<input type="email" cond="$member_config->identifier != 'user_id'" name="user_id" id="uid" required title="{lang('common.email_address')}" />
<label for="upw">{lang('common.password')}<a class="pos-right" href="{getUrl('act','dispMemberFindAccount')}">{lang('member.cmd_find_member_account')}</a></label>
<input type="password" name="password" id="upw" required title="{lang('common.password')}" />
<label for="keepid_opt">
<input type="checkbox" name="keep_signed" id="keepid_opt" value="Y" />
{lang('member.keep_signed')}
</label>
<div id="rx_message-warning" class="rx_message-notice">
{lang('member.about_keep_warning')}
</div>
<input type="submit" value="{$lang->cmd_login}" />
</div>
</form>
</section>
<div class="sw-footer">
<a cond="$member_config->enable_join !== 'N'" href="{getUrl('module','','act','dispMemberSignUpForm')}">{lang('member.cmd_signup')}</a>
</div>
</div>
<script>
$(function($){
var keep_msg = $('#rx_message-warning');
keep_msg.hide();
$('#keepid_opt').change(function(){
if($(this).is(':checked')){
keep_msg.slideDown(200);
} else {
keep_msg.slideUp(200);
}
});
});
</script>
<include target="./common_footer.html" />