mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-01 08:12:17 +09:00
필요할 때 라이믹스 (Rhymix PRN) - 멤버 모바일 스킨 (#885)
* 필요할 때 라이믹스 (Rhymix PRN) # 필요할 때 라이믹스 (Rhymix PRN) 마더캣님과 작업하는 정식 라이믹스 회원 모듈 모바일 스킨 디자인: 마더캣 구현: 미솔 참고: 미솔의 개인적인 스케줄이 바빠서 오래 걸릴 예정. rhymix-designs 에서 작업하고 사용할만하게 되면 옮겨오는 식으로 작업중... * Simple world 스킨 흔적 지우기. * 프로필 이미지 등록, 삭제 UI * 탈퇴 페이지에서 필수가 아닌 변수 삭제 https://github.com/rhymix/rhymix/pull/885 @bjrambo 님 의견 반영 * 회원 모듈 스킨, 커뮤니케이션 모듈 스킨 * 잘못 들어간 파일삭제 * 잘못 들어간 파일 삭제 * 깨진 이미지 복구 * 스킨 다듬기
This commit is contained in:
parent
1b5818e73c
commit
09e60ee3eb
53 changed files with 2937 additions and 0 deletions
28
modules/communication/m.skins/rx_prn/add_friend.html
Normal file
28
modules/communication/m.skins/rx_prn/add_friend.html
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{@ $communication_popup = TRUE;}
|
||||
<load target="filter/add_friend.xml" />
|
||||
<include target="./common_header.html" />
|
||||
<section class="prn-body">
|
||||
<h1>{$lang->cmd_add_friend}</h1>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/communication/skins/rx_prn/add_friend/1'" class="rx_prn-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="addFriend" action="./" method="post">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationAddFriend" />
|
||||
<input type="hidden" name="target_srl" value="{$target_info->member_srl}" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/rx_prn/add_friend/1" />
|
||||
<div class="control-group">
|
||||
<label for="n_name">{$lang->nick_name}</label>
|
||||
<input type="text" disabled="disabled" name="nick_name" id="n_name" value="{$target_info->nick_name}" title="{lang('common.user_id')}" />
|
||||
<label for="friend_group_srl">{$lang->friend_group}<a class="pos-right" href="{getUrl('act','dispCommunicationAddFriendGroup')}" onclick="popopen(this.href);return false;">{$lang->cmd_add_friend_group}</a></label>
|
||||
<select name="friend_group_srl" id="friend_group_srl">
|
||||
<option value="">{$lang->default_friend_group}</option>
|
||||
<option loop="$friend_group_list => $key,$val" value="{$val->friend_group_srl}">{$val->title}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="submit" value="{lang('communication.cmd_add_friend')}" />
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
<include target="./common_footer.html" />
|
||||
29
modules/communication/m.skins/rx_prn/add_friend_group.html
Normal file
29
modules/communication/m.skins/rx_prn/add_friend_group.html
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{@ $communication_popup = TRUE;}
|
||||
<include target="./common_header.html" />
|
||||
<load target="js/communication.js" />
|
||||
<section class="prn-body">
|
||||
<h1>
|
||||
<!--@if($friend_group->friend_group_srl)-->
|
||||
{$lang->cmd_rename_friend_group}
|
||||
<!--@else-->
|
||||
{$lang->cmd_add_friend_group}
|
||||
<!--@end-->
|
||||
</h1>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/communication/skins/rx_prn/add_friend_group/1'" class="rx_prn-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="addFriendGroup" action="./" method="post" class="form-horizontal">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationAddFriendGroup" />
|
||||
<input type="hidden" name="friend_group_srl" value="{$friend_group->friend_group_srl}" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/rx_prn/add_friend_group/1" />
|
||||
<div class="control-group">
|
||||
<label for="title">{$lang->msg_insert_group_name}</label>
|
||||
<input name="title" id="title" type="text" value="{htmlspecialchars($friend_group->title, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}"/>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input cond="$friend_group->friend_group_srl" type="submit" value="{$lang->cmd_modify}" />
|
||||
<input cond="!$friend_group->friend_group_srl" type="submit" value="{$lang->cmd_insert}" />
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
1
modules/communication/m.skins/rx_prn/common_footer.html
Normal file
1
modules/communication/m.skins/rx_prn/common_footer.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
</section>
|
||||
81
modules/communication/m.skins/rx_prn/common_header.html
Normal file
81
modules/communication/m.skins/rx_prn/common_header.html
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<!--// responsible layout -->
|
||||
<!--@if($communication_popup === TRUE)-->
|
||||
{@Context::addMetaTag("viewport", "width=device-width, user-scalable=yes")}
|
||||
<!--@endif-->
|
||||
|
||||
<load target="js/communication.js" />
|
||||
<!--// Check layout. If it is Simple World, select layout primary colors as a primary color of this skin -->
|
||||
<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->primary_color = 'red';
|
||||
if(!$layout_info->primary_color && $layout_info->customized_primary_color)
|
||||
$layout_info->primary_color = 'customized';
|
||||
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 = 'red';}
|
||||
</block>
|
||||
{@
|
||||
$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,
|
||||
);
|
||||
}
|
||||
<!--// Load styles -->
|
||||
{@$colorset = $material_colors[$member_config->colorset];}
|
||||
{@$skin_color = $material_colors[$layout_info->primary_color];}
|
||||
<block cond="$colorset">
|
||||
<!--@if(preg_match("/#([a-f0-9]{3}){1,2}/i", trim($colorset)) && in_array(strlen(trim($colorset)), array(4, 7)))-->
|
||||
{@$skin_color = trim($colorset)}
|
||||
<!--@if(strlen(trim($colorset)) === 4)-->
|
||||
{@$skin_color = trim($colorset)[1].trim($colorset)[1].trim($colorset)[2].trim($colorset)[2].trim($colorset)[3].trim($colorset)[3]}
|
||||
<!--@endif-->
|
||||
<!--@else-->
|
||||
{@$skin_color = '#f44336'}
|
||||
<!--@endif-->
|
||||
</block>
|
||||
<block cond="!$skin_color">
|
||||
<!--@if(preg_match("/#([a-f0-9]{3}){1,2}/i", $layout_info->primary_color) && in_array(strlen(trim($colorset)), array(4, 7)))-->
|
||||
{@$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('prn_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/css.less" vars="$prn_less_value" />
|
||||
<section class="rx_prn_communication">
|
||||
<div class="rx_prn_tab" cond="$communication_popup !== TRUE && $is_logged && $logged_info->menu_list && (!$member_srl || $member_srl == $logged_info->member_srl)">
|
||||
<ul class="rx_prn_tab">
|
||||
<li loop="$logged_info->menu_list=>$key,$val" class="active"|cond="$key==$act">
|
||||
<a href="{getUrl('', 'act',$key, 'mid', $mid, 'vid', $vid)}"><span>{lang($val)}</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
467
modules/communication/m.skins/rx_prn/css/css.less
Normal file
467
modules/communication/m.skins/rx_prn/css/css.less
Normal file
|
|
@ -0,0 +1,467 @@
|
|||
@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;
|
||||
}
|
||||
|
||||
/* Member skin container, default settings */
|
||||
|
||||
.rx_prn_communication
|
||||
{
|
||||
/* font-size */
|
||||
.font-xl()
|
||||
{
|
||||
/* font-size: 45; 1 */
|
||||
font-size: 1.25em;
|
||||
}
|
||||
.font-l()
|
||||
{
|
||||
/* font-size: 40; 1_2, 1_3, 2_1, 4, 5_1 */
|
||||
font-size: 1.11em;
|
||||
}
|
||||
.font-m()
|
||||
{
|
||||
/* font-size: 36; 1_4, 2_2, 4_1, 5_2 */
|
||||
font-size: 1em;
|
||||
}
|
||||
.font-s()
|
||||
{
|
||||
/* font-size: 30; 2_3, 3_1, 5_3 */
|
||||
font-size: 0.833em;
|
||||
}
|
||||
|
||||
|
||||
/* font-weight */
|
||||
.font-bold()
|
||||
{
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* font-color */
|
||||
.font-point()
|
||||
{
|
||||
/* 4, 4_1 */
|
||||
color: lighten(@color, 5%)
|
||||
}
|
||||
|
||||
.font-dark()
|
||||
{
|
||||
color: #484848
|
||||
}
|
||||
.font-gray()
|
||||
{
|
||||
color: #757575
|
||||
}
|
||||
.font-light()
|
||||
{
|
||||
color: #bdbdbd
|
||||
}
|
||||
|
||||
|
||||
.background-lightgray()
|
||||
{
|
||||
background-color: #fafafa
|
||||
}
|
||||
.background-gray()
|
||||
{
|
||||
background-color: #bdbdbd
|
||||
}
|
||||
.background-lightpoint()
|
||||
{
|
||||
color: lighten(@color, 10%)
|
||||
}
|
||||
.background-point()
|
||||
{
|
||||
color: @color
|
||||
}
|
||||
|
||||
|
||||
font-family: "맑은 고딕", "Apple SD Gothic Neo","나눔고딕",NanumGothic,'Nanum Gothic',Arial,Helvetica,sans-serif;
|
||||
font-size: 14px;
|
||||
text-align: justify;
|
||||
margin: 8px 0px;
|
||||
padding: 0 5px;
|
||||
.font-dark();
|
||||
|
||||
|
||||
a
|
||||
{
|
||||
.font-dark();
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pos-right
|
||||
{
|
||||
position:absolute;
|
||||
right:0
|
||||
}
|
||||
|
||||
/* Tab over the main content. */
|
||||
div.rx_prn_tab{
|
||||
background: #ffffff;
|
||||
margin: 5px 0 0;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
width:100%;
|
||||
ul.rx_prn_tab{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: outside none none;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
&>li {
|
||||
display:inline-block;
|
||||
line-height: 1.5;
|
||||
position: relative;
|
||||
padding: 0 10px;
|
||||
a {
|
||||
display:inline-block;
|
||||
letter-spacing: -1px;
|
||||
line-height: 3;
|
||||
border-bottom: solid 3px #fff;
|
||||
padding: 0 5px;
|
||||
.font-l();
|
||||
.font-bold();
|
||||
}
|
||||
a:hover, a:focus, &.active a{
|
||||
border-bottom: solid 3px @color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* member forms */
|
||||
.prn-narrow
|
||||
{
|
||||
max-width:400px;
|
||||
margin:0px auto;
|
||||
box-sizing:border-box;
|
||||
}
|
||||
.prn-body
|
||||
{
|
||||
box-sizing:border-box;
|
||||
border-radius: 25px;
|
||||
.background-lightgray();
|
||||
margin: 0 0 17px;
|
||||
padding: 1px 0;
|
||||
&>*
|
||||
{
|
||||
padding: 5px 20px;
|
||||
margin:0;
|
||||
border: 0;
|
||||
&:first-child {
|
||||
padding-top: 20px;
|
||||
}
|
||||
&:last-child {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
}
|
||||
h1
|
||||
{
|
||||
padding: 15px 5px;
|
||||
margin: 5px 15px;
|
||||
border-bottom: 1px solid #d1d1d1;
|
||||
.font-l();
|
||||
.font-bold();
|
||||
}
|
||||
.prn-anchor-buttons
|
||||
{
|
||||
margin: 5px 0px;
|
||||
&>a, &>label, &>button, &>select, &>input[type="submit"]
|
||||
{
|
||||
display: block;
|
||||
width: 100%;
|
||||
-webkit-appearance: none;
|
||||
box-sizing: border-box;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
border-bottom: 1px solid #d1d1d1;
|
||||
border-left: none;
|
||||
border-radius: 0px;
|
||||
background-color: #fff;
|
||||
padding: 10px 15px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
.font-m();
|
||||
.font-point();
|
||||
&:hover, &:focus
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
|
||||
}
|
||||
&:first-child
|
||||
{
|
||||
border-top: 1px solid #d1d1d1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
form
|
||||
{
|
||||
overflow: hidden;
|
||||
width:100%;
|
||||
white-space: normal;
|
||||
box-sizing: border-box;
|
||||
div.control-group
|
||||
{
|
||||
&>*
|
||||
{
|
||||
display:block;
|
||||
position:relative;
|
||||
box-sizing: border-box;
|
||||
width:100%;
|
||||
height: auto;
|
||||
margin:0px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
&>*:first-child
|
||||
{
|
||||
margin-top: 0;
|
||||
}
|
||||
&>input, &>select, button, #prn_profile_imagetag label.prn_button
|
||||
{
|
||||
border: 1px solid #d1d1d1;
|
||||
border-radius: 25px;
|
||||
margin-top: 0;
|
||||
padding: 8px 15px;
|
||||
-webkit-appearance: none;
|
||||
line-height: 2;
|
||||
height: auto;
|
||||
.font-gray();
|
||||
.font-m();
|
||||
}
|
||||
&>label, &>div.control-label
|
||||
{
|
||||
font-weight: bold;
|
||||
border:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
form input[type="submit"], form button
|
||||
{
|
||||
padding: 10px;
|
||||
vertical-align: bottom;
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 3.0);
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
border:0;
|
||||
color: #000;
|
||||
&:hover, &:focus
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
|
||||
}
|
||||
}
|
||||
form div.control-group>input[type="submit"], .prn-footer{
|
||||
margin: 20px 0 0;
|
||||
}
|
||||
.prn-footer.prn-anchor-buttons {
|
||||
text-align:right;
|
||||
&>a {
|
||||
display:inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
/* message; error, info, update */
|
||||
.rx_prn-notice, .rx_prn-notice.info
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color, 5%); darken(@color, 5%); 5.0);
|
||||
color: #000;
|
||||
border-radius: 15px;
|
||||
padding: 15px;
|
||||
margin: 10px;
|
||||
margin-top:0;
|
||||
text-align: justify;
|
||||
.font-gray();
|
||||
.font-m();
|
||||
}
|
||||
.rx_prn-notice.error
|
||||
{
|
||||
background: #fff3e0;
|
||||
.text-contrast(#fff3e0);
|
||||
}
|
||||
.rx_prn-notice.update
|
||||
{
|
||||
background: #e8f5e9;
|
||||
.text-contrast(#e8f5e9);
|
||||
}
|
||||
.rx_prn-notice>*
|
||||
{
|
||||
padding: 0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
/* The list of document style */
|
||||
.content_basic{
|
||||
position:relative;
|
||||
display:inline-block;
|
||||
max-width:100%;
|
||||
vertical-align: middle;
|
||||
overflow:hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.content_subinfo
|
||||
{
|
||||
color: #9e9e9e;
|
||||
font-size: 12px;
|
||||
margin: 0 3px 0 7px;
|
||||
overflow:hidden;
|
||||
}
|
||||
ul.rx_sw_list {
|
||||
list-style: outside none none;
|
||||
margin: 20px 0px;
|
||||
padding: 0;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
li {
|
||||
position:relative;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
overflow: hidden;
|
||||
padding:0;
|
||||
}
|
||||
.cont_a {
|
||||
color: #222;
|
||||
display: block;
|
||||
letter-spacing: -1px;
|
||||
line-height: 18px;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
padding: 0.667em 70px 0.733em 15px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
text-decoration: none;
|
||||
&.no_delete {
|
||||
padding-right: 15px;
|
||||
}
|
||||
&:hover, &:focus {
|
||||
.text-contrast(#fff; darken(@color,5%); lighten(@color,5%));
|
||||
}
|
||||
}
|
||||
.content_delete{
|
||||
position:absolute;
|
||||
top:0;
|
||||
right:2px;
|
||||
button{
|
||||
background: lighten(@color, 5%);
|
||||
font-size: 14px;
|
||||
border:0;
|
||||
border-radius: 25px;
|
||||
.text-contrast(lighten(@color, 5%));
|
||||
padding: 10px 15px;
|
||||
vertical-align: bottom;
|
||||
&:hover, &:focus
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
|
||||
}
|
||||
}
|
||||
input[type="checkbox"]
|
||||
{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.pagination ul
|
||||
{
|
||||
display:block;
|
||||
list-style: outside none none;
|
||||
text-align:center;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
li{
|
||||
display:inline-block;
|
||||
&>a
|
||||
{
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background-color: #fff;
|
||||
padding: 10px 15px;
|
||||
text-decoration: none;
|
||||
.font-m();
|
||||
&:hover, &:focus
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
|
||||
}
|
||||
}
|
||||
&.active>a
|
||||
{
|
||||
background-color: #d1d1d1;
|
||||
font-weight:bold;
|
||||
color:#000;
|
||||
}
|
||||
}
|
||||
}
|
||||
.prn-footer
|
||||
{
|
||||
&>a
|
||||
{
|
||||
display: block;
|
||||
border-radius: 25px;
|
||||
border: 1px solid #d1d1d1;
|
||||
background-color: #fff;
|
||||
padding: 10px 15px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
.font-m();
|
||||
&:hover, &:focus
|
||||
{
|
||||
.bg-contrast(#000; lighten(@color,5%); darken(@color,5%); 4.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<filter name="add_friend" module="communication" act="procCommunicationAddFriend" confirm_msg_code="confirm_submit">
|
||||
<form />
|
||||
<parameter />
|
||||
<response callback_func="completeAddFriend">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="member_srl" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<filter name="add_friend_group" module="communication" act="procCommunicationAddFriendGroup" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="title" required="true" minlength="1" maxlength="240" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response callback_func="completeAddFriendGroup">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -0,0 +1 @@
|
|||
<filter name="delete_checked_friend" module="communication" act="procCommunicationDeleteFriend" confirm_msg_code="confirm_delete" />
|
||||
|
|
@ -0,0 +1 @@
|
|||
<filter name="delete_checked_message" module="communication" act="procCommunicationDeleteMessages" confirm_msg_code="confirm_delete" />
|
||||
|
|
@ -0,0 +1 @@
|
|||
<filter name="delete_friend_group" module="communication" act="procCommunicationDeleteFriendGroup" confirm_msg_code="confirm_delete" />
|
||||
|
|
@ -0,0 +1 @@
|
|||
<filter name="move_friend" module="communication" act="procCommunicationMoveFriend" confirm_msg_code="confirm_move" />
|
||||
12
modules/communication/m.skins/rx_prn/filter/send_message.xml
Normal file
12
modules/communication/m.skins/rx_prn/filter/send_message.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<filter name="send_message" module="communication" act="procCommunicationSendMessage" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="title" required="true" minlength="1" maxlength="240" />
|
||||
<node target="content" required="true" minlength="1" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response callback_func="completeSendMessage">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="redirect_url" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<filter name="update_allow_message" module="communication" act="procCommunicationUpdateAllowMessage">
|
||||
<form />
|
||||
<parameter />
|
||||
<response />
|
||||
</filter>
|
||||
80
modules/communication/m.skins/rx_prn/friends.html
Normal file
80
modules/communication/m.skins/rx_prn/friends.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<include target="./common_header.html" />
|
||||
<load target="filter/delete_friend_group.xml" />
|
||||
<load target="filter/move_friend.xml" />
|
||||
<div class="prn-narrow">
|
||||
<section class="prn-body">
|
||||
<h1>{$member_title = $lang->cmd_view_friend}</h1>
|
||||
<div class="rx_prn-notice">{lang('common.total')}: {number_format($total_count)}</div>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/communication/skins/rx_prn/frineds/1'" class="rx_prn-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<div>
|
||||
<form action="./" method="get" class="pos-left">
|
||||
<input type="hidden" name="act" value="dispCommunicationFriend" />
|
||||
<input type="hidden" name="message_type" value="{$message_type}" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<div class="control-group">
|
||||
<select name="friend_group_srl" id="jumpMenu">
|
||||
<option value="">{$lang->default_friend_group}</option>
|
||||
<option loop="$friend_group_list => $key,$val" value="{$val->friend_group_srl}" selected="selected"|cond="$val->friend_group_srl == $friend_group_srl">{$val->title}</option>
|
||||
</select>
|
||||
<input type="submit" value="{$lang->cmd_view_selected_frend_group}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form ruleset="deleteCheckedFriend" id="fo_friend_list" action="./" method="post">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationDeleteFriend" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/rx_prn/frineds/1" />
|
||||
<ul class="rx_sw_list">
|
||||
<li loop="$friend_list => $no,$val">
|
||||
<a href="#popup_menu_area" class="cont_a member_{$val->target_srl}">
|
||||
<span class="content_basic member_{$val->target_srl}">
|
||||
<span class="content_title member_{$val->target_srl}">
|
||||
{escape($val->nick_name)}
|
||||
</span>
|
||||
<span class="content_subinfo member_{$val->target_srl}">
|
||||
{escape($val->group_title?$val->group_title:$lang->default_friend_group)} / {zdate($val->regdate,"Y-m-d H:i")}
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
<span class="content_delete">
|
||||
<input name="friend_srl_list[]" type="checkbox" value="{$val->friend_srl}" />
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="prn-anchor-buttons">
|
||||
<label for="check_all">
|
||||
{$lang->cmd_select_all}
|
||||
<input name="check_all" id="check_all" type="checkbox" onclick="XE.checkboxToggleAll('friend_srl_list[]', {wrap:'fo_friend_list'})"/>
|
||||
</label>
|
||||
<button type="submit" name="act" value="procCommunicationDeleteFriend">{$lang->cmd_delete}</button>
|
||||
</div>
|
||||
<div class="prn-anchor-buttons">
|
||||
<select name="target_friend_group_srl" id="target_friend_group_srl" cond="count($friend_group_list)" style="margin:0">
|
||||
<option loop="$friend_group_list => $key,$val" value="{$val->friend_group_srl}">{$val->title}</option>
|
||||
</select>
|
||||
<button type="submit" name="act" cond="count($friend_group_list)" value="procCommunicationMoveFriend">{$lang->cmd_move}</button>
|
||||
<button type="button" value="{getUrl('','module','communication','act','dispCommunicationAddFriendGroup')}" onclick="popopen(this.value);return false;">{$lang->cmd_add_friend_group}...</button>
|
||||
<button type="button" cond="count($friend_group_list)" onclick="doRenameFriendGroup();return false;">{$lang->cmd_rename_friend_group}...</button>
|
||||
<button type="button" cond="count($friend_group_list)" onclick="doDeleteFriendGroup();return false;">{$lang->cmd_delete_friend_group}</button>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
</div>
|
||||
<div class="pagination pagination-centered">
|
||||
<ul>
|
||||
{@$rx_prn = FALSE}
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<li cond="$rx_prn === FALSE && ($page_no - 1) > 0"><a href="{getUrl('page', ($page_no - 1),'module_srl','')}" class="direction">‹</a></li>
|
||||
{@$rx_prn = $page_no}
|
||||
<li class="active"|cond="$page == $page_no"><a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a></li>
|
||||
<!--@end-->
|
||||
<li cond="$page_navigation->last_page > $rx_prn && $rx_prn > 0"><a href="{getUrl('page', ($rx_prn + 1),'module_srl','')}" class="direction">›</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<form action="./" method="get" id="for_delete_group">
|
||||
<input type="hidden" name="friend_group_srl" value="" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/rx_prn/frineds/1" />
|
||||
</form>
|
||||
<include target="./common_footer.html" />
|
||||
119
modules/communication/m.skins/rx_prn/js/communication.js
Normal file
119
modules/communication/m.skins/rx_prn/js/communication.js
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
/* 쪽지 발송 */
|
||||
function completeSendMessage(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
window.close();
|
||||
}
|
||||
|
||||
function doSendMessage(member_srl, message_srl) {
|
||||
if(typeof(message_srl)=='undefined') message_srl = 0;
|
||||
var url = request_uri.setQuery('module','communication').setQuery('act','dispCommunicationSendMessage').setQuery('receiver_srl',member_srl).setQuery('message_srl',message_srl);
|
||||
popopen(url, 'sendMessage');
|
||||
}
|
||||
|
||||
/* 개별 쪽지 삭제 */
|
||||
function doDeleteMessage(message_srl) {
|
||||
if(!message_srl) return;
|
||||
|
||||
var params = new Array();
|
||||
params['message_srl'] = message_srl;
|
||||
exec_xml('communication', 'procCommunicationDeleteMessage', params, completeDeleteMessage);
|
||||
}
|
||||
|
||||
function completeDeleteMessage(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.href = current_url.setQuery('message_srl','');
|
||||
}
|
||||
|
||||
/* 개별 쪽지 보관 */
|
||||
function doStoreMessage(message_srl) {
|
||||
if(!message_srl) return;
|
||||
|
||||
var params = new Array();
|
||||
params['message_srl'] = message_srl;
|
||||
exec_xml('communication', 'procCommunicationStoreMessage', params, completeStoreMessage);
|
||||
}
|
||||
|
||||
function completeStoreMessage(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.href = current_url.setQuery('message_srl','');
|
||||
}
|
||||
|
||||
/* 친구 추가 후 */
|
||||
function completeAddFriend(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
var member_srl = ret_obj['member_srl'];
|
||||
if(opener && opener.loaded_member_menu_list) {
|
||||
opener.loaded_member_menu_list[ret_obj['member_srl']] = '';
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
|
||||
/* 친구 그룹 추가 후 */
|
||||
function completeAddFriendGroup(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
if(opener) opener.location.href = opener.location.href;
|
||||
window.close();
|
||||
}
|
||||
|
||||
/* 친구 그룹 삭제 */
|
||||
function doDeleteFriendGroup() {
|
||||
var friend_group_srl = jQuery('#target_friend_group_srl option:selected').val();
|
||||
if(!friend_group_srl) return;
|
||||
|
||||
var fo_obj = jQuery('#for_delete_group').get(0);
|
||||
fo_obj.friend_group_srl.value = friend_group_srl;
|
||||
|
||||
procFilter(fo_obj, delete_friend_group);
|
||||
}
|
||||
|
||||
function completeDeleteFriendGroup(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.href = current_url.setQuery('friend_group_srl','');
|
||||
}
|
||||
|
||||
/* 친구 그룹의 이름 변경 */
|
||||
function doRenameFriendGroup() {
|
||||
var friend_group_srl = jQuery('#target_friend_group_srl option:selected').val();
|
||||
if(!friend_group_srl) return;
|
||||
|
||||
popopen("./?module=communication&act=dispCommunicationAddFriendGroup&friend_group_srl="+friend_group_srl);
|
||||
}
|
||||
|
||||
/* 친구 그룹 이동 */
|
||||
function doMoveFriend() {
|
||||
var fo_obj = jQuery('#fo_friend_list').get(0);
|
||||
procFilter(fo_obj, move_friend);
|
||||
}
|
||||
|
||||
/* 친구 그룹 선택 */
|
||||
function doJumpFriendGroup() {
|
||||
var sel_val = jQuery('#jumpMenu option:selected').val();
|
||||
location.href = current_url.setQuery('friend_group_srl', sel_val);
|
||||
}
|
||||
|
||||
function isRxPrnTouchable() {
|
||||
var el = document.createElement('div');
|
||||
el.setAttribute('ontouchstart', 'return;'); // or try "ontouchstart"
|
||||
return typeof el.ontouchstart === "function";
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.__submit_group button[type=submit]').click(function(e){
|
||||
var sel_val = $('input[name="friend_srl_list[]"]:checked').length;
|
||||
if(sel_val == 0)
|
||||
{
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(isRxPrnTouchable()) {
|
||||
$(".rx_prn_communication div.rx_prn_tab ul.rx_prn_tab").css('white-space', 'nowrap');
|
||||
try
|
||||
{
|
||||
$(".rx_prn_communication div.rx_prn_tab ul.rx_prn_tab").animate({
|
||||
scrollLeft: $(".rx_prn_communication div.rx_prn_tab ul.rx_prn_tab li.active").offset().left
|
||||
}, 300);
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
});
|
||||
84
modules/communication/m.skins/rx_prn/messages.html
Normal file
84
modules/communication/m.skins/rx_prn/messages.html
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<include target="./common_header.html" />
|
||||
<load target="filter/delete_checked_message.xml" />
|
||||
<load target="filter/update_allow_message.xml" />
|
||||
<div class="prn-narrow">
|
||||
<section class="prn-body" cond="$message">
|
||||
<h1>{escape($message->title)}</h1>
|
||||
<div>
|
||||
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
|
||||
</div>
|
||||
<div class="xe_content">
|
||||
{$message->content}
|
||||
</div>
|
||||
<div class="prn-anchor-buttons">
|
||||
<a cond="$message->message_type != 'S' && $message->member_srl != $logged_info->member_srl" href="#" onclick="doSendMessage('{$message->sender_srl}','{$message->message_srl}');">{$lang->cmd_reply_message}</a>
|
||||
<a cond="$message->message_type == 'R'" href="#" onclick="doStoreMessage('{$message->message_srl}');">{$lang->cmd_store}</a>
|
||||
<a href="#" onclick="doDeleteMessage('{$message->message_srl}');">{$lang->cmd_delete}</a>
|
||||
</div>
|
||||
</section>
|
||||
<section class="prn-body">
|
||||
<h1 loop="$lang->message_box => $key,$val" cond="$message_type == $key">{$val}</h1>
|
||||
|
||||
<div class="prn-footer prn-anchor-buttons prn-headers" cond="$message_type == 'R'">
|
||||
<form action="./" method="POST" class="pos-left">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationUpdateAllowMessage" />
|
||||
<input type="hidden" name="message_type" value="{$message_type}" />
|
||||
|
||||
<div class="control-group">
|
||||
<select name="allow_message">
|
||||
<option loop="$lang->allow_message_type => $key,$val" value="{$key}" selected="selected"|cond="$logged_info->allow_message==$key">{$val}</option>
|
||||
</select>
|
||||
<input type="submit" value="{$lang->cmd_save}">
|
||||
</div>
|
||||
</form>
|
||||
<div style="clear:both"></div>
|
||||
</div>
|
||||
|
||||
<form action="./" method="post" id="fo_message_list">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationDeleteMessages" />
|
||||
<input type="hidden" name="message_type" value="{$message_type}" />
|
||||
|
||||
<ul class="rx_sw_list">
|
||||
<li loop="$message_list => $key, $val">
|
||||
<a href="{getUrl('message_srl',$val->message_srl)}" class="cont_a">
|
||||
<span class="content_basic">
|
||||
<span class="content_title">
|
||||
{escape($val->title)}
|
||||
</span>
|
||||
<span class="content_subinfo">
|
||||
{escape($val->nick_name)} / {zdate($val->regdate,"Y-m-d H:i")}<block cond="$val->readed=='Y'"> / {zdate($val->readed_date,"Y-m-d H:i")}</block>
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
<span class="content_delete">
|
||||
<input name="message_srl_list[]" type="checkbox" value="{$val->message_srl}" />
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="prn-anchor-buttons">
|
||||
<label for="check_all">
|
||||
{$lang->cmd_select_all}
|
||||
<input name="check_all" id="check_all" type="checkbox" onclick="XE.checkboxToggleAll('message_srl_list[]', {wrap:'fo_message_list'})"/>
|
||||
</label>
|
||||
<input type="submit" value="{$lang->cmd_delete}" />
|
||||
</div>
|
||||
</form>
|
||||
<div class="prn-anchor-buttons">
|
||||
<a loop="$lang->message_box => $key,$val" href="{getUrl('message_type', $key, 'message_srl', '')}" class="active"|cond="$message_type == $key">{$val}</a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div class="pagination pagination-centered">
|
||||
<ul>
|
||||
{@$rx_prn = FALSE}
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<li cond="$rx_prn === FALSE && ($page_no - 1) > 0"><a href="{getUrl('page', ($page_no - 1),'module_srl','')}" class="direction">‹</a></li>
|
||||
{@$rx_prn = $page_no}
|
||||
<li class="active"|cond="$page == $page_no"><a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a></li>
|
||||
<!--@end-->
|
||||
<li cond="$page_navigation->last_page > $rx_prn && $rx_prn > 0"><a href="{getUrl('page', ($rx_prn + 1),'module_srl','')}" class="direction">›</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<include target="./common_footer.html" />
|
||||
19
modules/communication/m.skins/rx_prn/new_message.html
Normal file
19
modules/communication/m.skins/rx_prn/new_message.html
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{@ $communication_popup = TRUE}
|
||||
<include target="./common_header.html" />
|
||||
<div class="prn-narrow">
|
||||
<section class="prn-body" cond="$message">
|
||||
<h1>{escape($message->title)}</h1>
|
||||
<div>
|
||||
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
|
||||
</div>
|
||||
<div class="xe_content">
|
||||
{$message->content}
|
||||
</div>
|
||||
<div class="prn-anchor-buttons">
|
||||
<a cond="$message->message_type != 'S' && $message->member_srl != $logged_info->member_srl" href="#" onclick="doSendMessage('{$message->sender_srl}','{$message->message_srl}');">{$lang->cmd_reply_message}</a>
|
||||
<a cond="$message->message_type == 'R'" href="#" onclick="doStoreMessage('{$message->message_srl}');">{$lang->cmd_store}</a>
|
||||
<a href="#" onclick="doDeleteMessage('{$message->message_srl}');">{$lang->cmd_delete}</a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<include target="./common_footer.html" />
|
||||
30
modules/communication/m.skins/rx_prn/send_message.html
Normal file
30
modules/communication/m.skins/rx_prn/send_message.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{@ $communication_popup = TRUE}
|
||||
<include target="./common_header.html" />
|
||||
<div class="prn-narrow">
|
||||
<section class="prn-body">
|
||||
<h1>{$lang->cmd_send_message}</h1>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/communication/skins/rx_prn/send_message/1'" class="rx_prn-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="sendMessage" action="./" method="post">
|
||||
<input type="hidden" name="module" value="communication" />
|
||||
<input type="hidden" name="act" value="procCommunicationSendMessage" />
|
||||
<input type="hidden" name="content" value="{htmlspecialchars($source_message->content)}" />
|
||||
<input type="hidden" name="receiver_srl" value="{$receiver_info->member_srl}" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/rx_prn/send_message/1" />
|
||||
<div class="control-group">
|
||||
<label for="message_receiver">{$lang->receiver}</label>
|
||||
<a id="message_receiver" href="#popup_menu_area" class="member_{$receiver_info->member_srl}">{$receiver_info->nick_name}</a>
|
||||
<label for="message_title">{$lang->title}</label>
|
||||
<input type="text" name="title" id="message_title" value="{$source_message->title}" />
|
||||
<label for="message_send_mail"><input type="checkbox" value="Y" name="send_mail" id="message_send_mail" /> {$lang->cmd_send_mail}</label>
|
||||
<div class="rx_prn-notice info">{$lang->msg_send_mail_privacy}</div>
|
||||
</div>
|
||||
{$editor}
|
||||
<div class="control-group">
|
||||
<input type="submit" value="{$lang->cmd_send_message}" />
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
</div>
|
||||
<include target="./common_footer.html" />
|
||||
108
modules/communication/m.skins/rx_prn/skin.xml
Normal file
108
modules/communication/m.skins/rx_prn/skin.xml
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">필요할 때 라이믹스</title>
|
||||
<title xml:lang="en">Rhymix PRN</title>
|
||||
<description xml:lang="ko">필요할 때 꺼내보는 라이믹스. 캡슐 모양의 둥근 라이믹스 커뮤니케이션 모듈 스킨입니다.</description>
|
||||
<description xml:lang="en">You need Rhymix. A skin of the communication module of Rhymix with round, capsule-like shapes.</description>
|
||||
<version>0.1</version>
|
||||
<date>2017-08-09</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>
|
||||
<author email_address="mely4506@naver.com" link="https://github.com/mothercat">
|
||||
<name xml:lang="ko">마더캣</name>
|
||||
<name xml:lang="en">Mothercat</name>
|
||||
</author>
|
||||
<colorset>
|
||||
<color name="theme">
|
||||
<title xml:lang="ko">사이트 테마 색</title>
|
||||
<title xml:lang="en">The site theme color</title>
|
||||
</color>
|
||||
<color name="red">
|
||||
<title xml:lang="ko">붉은 색</title>
|
||||
<title xml:lang="en">Red</title>
|
||||
</color>
|
||||
<color name="crimson">
|
||||
<title xml:lang="ko">크림슨</title>
|
||||
<title xml:lang="en">Crimson</title>
|
||||
</color>
|
||||
<color name="pink">
|
||||
<title xml:lang="ko">분홍</title>
|
||||
<title xml:lang="en">Pink</title>
|
||||
</color>
|
||||
<color name="purple">
|
||||
<title xml:lang="ko">보라</title>
|
||||
<title xml:lang="en">Purple</title>
|
||||
</color>
|
||||
<color name="deep-purple">
|
||||
<title xml:lang="ko">진보라</title>
|
||||
<title xml:lang="en">Deep Purple</title>
|
||||
</color>
|
||||
<color name="indigo">
|
||||
<title xml:lang="ko">인디고</title>
|
||||
<title xml:lang="en">Indigo</title>
|
||||
</color>
|
||||
<color name="deep-blue">
|
||||
<title xml:lang="ko">짙은 파랑</title>
|
||||
<title xml:lang="en">Deep Blue</title>
|
||||
</color>
|
||||
<color name="blue">
|
||||
<title xml:lang="ko">파랑</title>
|
||||
<title xml:lang="en">Blue</title>
|
||||
</color>
|
||||
<color name="light-blue">
|
||||
<title xml:lang="ko">밝은 파랑</title>
|
||||
<title xml:lang="en">Light Blue</title>
|
||||
</color>
|
||||
<color name="cyan">
|
||||
<title xml:lang="ko">시안</title>
|
||||
<title xml:lang="en">Cyan</title>
|
||||
</color>
|
||||
<color name="teal">
|
||||
<title xml:lang="ko">틸</title>
|
||||
<title xml:lang="en">Teal</title>
|
||||
</color>
|
||||
<color name="green">
|
||||
<title xml:lang="ko">초록</title>
|
||||
<title xml:lang="en">Green</title>
|
||||
</color>
|
||||
<color name="light-green">
|
||||
<title xml:lang="ko">연한 초록</title>
|
||||
<title xml:lang="en">Light Green</title>
|
||||
</color>
|
||||
<color name="lime">
|
||||
<title xml:lang="ko">라임</title>
|
||||
<title xml:lang="en">Lime</title>
|
||||
</color>
|
||||
<color name="yellow">
|
||||
<title xml:lang="ko">노랑</title>
|
||||
<title xml:lang="en">Yellow</title>
|
||||
</color>
|
||||
<color name="amber">
|
||||
<title xml:lang="ko">앰버</title>
|
||||
<title xml:lang="en">Amber</title>
|
||||
</color>
|
||||
<color name="orange">
|
||||
<title xml:lang="ko">주황</title>
|
||||
<title xml:lang="en">Orange</title>
|
||||
</color>
|
||||
<color name="deep-orange">
|
||||
<title xml:lang="ko">진한 주황</title>
|
||||
<title xml:lang="en">Deep Orange</title>
|
||||
</color>
|
||||
<color name="brown">
|
||||
<title xml:lang="ko">갈색</title>
|
||||
<title xml:lang="en">Brown</title>
|
||||
</color>
|
||||
<color name="grey">
|
||||
<title xml:lang="ko">회색</title>
|
||||
<title xml:lang="en">Grey</title>
|
||||
</color>
|
||||
<color name="blue-grey">
|
||||
<title xml:lang="ko">푸른 회색</title>
|
||||
<title xml:lang="en">Blue Grey</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
Loading…
Add table
Add a link
Reference in a new issue