mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
add set group
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8992 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
b54f869704
commit
8f2180dd3f
12 changed files with 401 additions and 185 deletions
|
|
@ -83,6 +83,7 @@
|
|||
<action name="procMemberAdminUpdateGroupOrder" type="controller" standalone="true" />
|
||||
|
||||
<action name="procMemberAdminSelectedMemberManage" type="controller" ruleset="updateSeletecdMemberInfo" />
|
||||
<action name="procMemberAdminGroupConfig" type="controller" />
|
||||
</actions>
|
||||
<menus>
|
||||
<menu name="userList">
|
||||
|
|
|
|||
|
|
@ -720,41 +720,8 @@
|
|||
<value xml:lang="vi"><![CDATA[Xin hãy nhập Email của Webmaster.]]></value>
|
||||
</item>
|
||||
<item name="search_target_list" type="array">
|
||||
<item name="user_id">
|
||||
<value xml:lang="ko"><![CDATA[아이디]]></value>
|
||||
<value xml:lang="en"><![CDATA[ID]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ユーザーID]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[用户名]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[帳號]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Compte]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Kimlik]]></value>
|
||||
<value xml:lang="vi"><![CDATA[ID đăng nhập]]></value>
|
||||
</item>
|
||||
<item name="user_name">
|
||||
<value xml:lang="ko"><![CDATA[이름]]></value>
|
||||
<value xml:lang="en"><![CDATA[Name]]></value>
|
||||
<value xml:lang="jp"><![CDATA[お名前]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[姓名]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[姓名]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Nom]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Имя]]></value>
|
||||
<value xml:lang="es"><![CDATA[Nombre]]></value>
|
||||
<value xml:lang="tr"><![CDATA[İsim]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Tên thật]]></value>
|
||||
</item>
|
||||
<item name="nick_name">
|
||||
<value xml:lang="ko"><![CDATA[닉네임]]></value>
|
||||
<value xml:lang="en"><![CDATA[Nickname]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ニックネーム]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[昵称]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[暱稱]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Surnom]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Ник]]></value>
|
||||
<value xml:lang="es"><![CDATA[Apodo]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Takma Ad]]></value>
|
||||
</item>
|
||||
<item name="email_address">
|
||||
<value xml:lang="ko"><![CDATA[메일 주소]]></value>
|
||||
<value xml:lang="ko"><![CDATA[이메일]]></value>
|
||||
<value xml:lang="en"><![CDATA[Email Address]]></value>
|
||||
<value xml:lang="jp"><![CDATA[メールアドレス]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[邮箱地址]]></value>
|
||||
|
|
@ -2307,6 +2274,12 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới,
|
|||
<value xml:lang="ko"><![CDATA[거부]]></value>
|
||||
<value xml:lang="en"><![CDATA[Denied]]></value>
|
||||
</item>
|
||||
<item name="use_group_image_mark">
|
||||
<value xml:lang="ko"><![CDATA[그룹 이미지 마크 사용]]></value>
|
||||
</item>
|
||||
<item name="msg_group_delete">
|
||||
<value xml:lang="ko"><![CDATA[선택한 그룹을 삭제합니다.]]></value>
|
||||
</item>
|
||||
<item name="email">
|
||||
<value xml:lang="ko"><![CDATA[이메일]]></value>
|
||||
<value xml:lang="en"><![CDATA[Email]]></value>
|
||||
|
|
|
|||
|
|
@ -668,12 +668,7 @@
|
|||
function insertGroup($args) {
|
||||
if(!$args->site_srl) $args->site_srl = 0;
|
||||
// Check the value of is_default.
|
||||
if($args->is_default!='Y') {
|
||||
$args->is_default = 'N';
|
||||
} else {
|
||||
$output = executeQuery('member.updateGroupDefaultClear', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
if($args->is_default!='Y') $args->is_default = 'N';
|
||||
|
||||
if (!$args->group_srl) $args->group_srl = getNextSequence();
|
||||
|
||||
|
|
@ -686,10 +681,6 @@
|
|||
function updateGroup($args) {
|
||||
// Check the value of is_default.
|
||||
if($args->is_default!='Y') $args->is_default = 'N';
|
||||
else {
|
||||
$output = executeQuery('member.updateGroupDefaultClear', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
return executeQuery('member.updateGroup', $args);
|
||||
}
|
||||
|
|
@ -717,6 +708,43 @@
|
|||
return executeQuery('member.deleteGroup', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set group config
|
||||
**/
|
||||
function procMemberAdminGroupConfig() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// group image mark option
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$config->group_image_mark = $vars->group_image_mark;
|
||||
$output = $oModuleController->updateModuleConfig('member', $config);
|
||||
|
||||
// group data save
|
||||
$group_srls = $vars->group_srls;
|
||||
foreach($group_srls as $order=>$group_srl){
|
||||
unset($update_args);
|
||||
$update_args->title = $vars->group_titles[$order];
|
||||
$update_args->is_default = ($vars->defaultGroup == $group_srl)?'Y':'N';
|
||||
$update_args->description = $vars->descriptions[$order];
|
||||
$update_args->image_mark = $vars->image_marks[$order];
|
||||
$update_args->list_order = $order + 1;
|
||||
|
||||
if (is_numeric($group_srl)){
|
||||
$update_args->group_srl = $group_srl;
|
||||
$output = $this->updateGroup($update_args);
|
||||
}else
|
||||
$output = $this->insertGroup($update_args);
|
||||
}
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function procMemberAdminUpdateGroupOrder() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
* @brief display member list
|
||||
**/
|
||||
function dispMemberAdminList() {
|
||||
|
||||
$oMemberAdminModel = &getAdminModel('member');
|
||||
$oMemberModel = &getModel('member');
|
||||
$output = $oMemberAdminModel->getMemberList();
|
||||
|
|
@ -57,10 +56,22 @@
|
|||
}
|
||||
}
|
||||
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$memberIdentifiers = array('user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name');
|
||||
$usedIdentifiers = array();
|
||||
foreach($config->signupForm as $signupItem){
|
||||
if (!count($memberIdentifiers)) break;
|
||||
if(in_array($signupItem->name, $memberIdentifiers) && ($signupItem->required || $signupItem->isUse)){
|
||||
unset($memberIdentifiers[$signupItem->name]);
|
||||
$usedIdentifiers[$signupItem->name] = $lang->{$signupItem->name};
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('member_list', $output->data);
|
||||
Context::set('usedIdentifiers', $usedIdentifiers);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('member_list');
|
||||
|
|
@ -200,8 +211,50 @@
|
|||
$member_config = $oMemberModel->getMemberConfig();
|
||||
$formTags = array();
|
||||
global $lang;
|
||||
|
||||
if (!$member_config->signupForm || !is_array($member_config->signupForm)){
|
||||
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark');
|
||||
$mustRequireds = array('email_address', 'password', 'find_account_question');
|
||||
$orgRequireds = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name');
|
||||
$orgUse = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name', 'homepage', 'blog', 'birthday');
|
||||
$list_order = array();
|
||||
foreach($items as $key){
|
||||
unset($signupItem);
|
||||
$signupItem->isDefaultForm = true;
|
||||
$signupItem->name = $key;
|
||||
$signupItem->title = $lang->{$key};
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->imageType = (strpos($key, 'image') !== false);
|
||||
$signupItem->required = in_array($key, $orgRequireds);
|
||||
$signupItem->isUse = ($config->{$key} == 'Y') || in_array($key, $orgUse);
|
||||
if ($signupItem->imageType){
|
||||
$signupItem->max_width = $config->{$key.'_max_width'};
|
||||
$signupItem->max_height = $config->{$key.'_max_height'};
|
||||
}
|
||||
$list_order[] = $signupItem;
|
||||
}
|
||||
foreach($extendItems as $form_srl=>$item_info){
|
||||
unset($signupItem);
|
||||
$signupItem->name = $item_info->column_name;
|
||||
$signupItem->title = $item_info->column_title;
|
||||
$signupItem->type = $item_info->column_type;
|
||||
$signupItem->member_join_form_srl = $form_srl;
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->required = ($item_info->required == 'Y');
|
||||
$signupItem->isUse = ($item_info->is_active == 'Y');
|
||||
$signupItem->description = $item_info->description;
|
||||
if ($signupItem->imageType){
|
||||
$signupItem->max_width = $config->{$key.'_max_width'};
|
||||
$signupItem->max_height = $config->{$key.'_max_height'};
|
||||
}
|
||||
$list_order[] = $signupItem;
|
||||
}
|
||||
$member_config->signupForm = $list_order;
|
||||
}
|
||||
|
||||
foreach($member_config->signupForm as $no=>$formInfo){
|
||||
if (!$formInfo->isUse)continue;
|
||||
if ($formInfo->name == 'email_address') continue;
|
||||
unset($formTag);
|
||||
$inputTag = '';
|
||||
$formTag->title = $formInfo->title;
|
||||
|
|
@ -402,6 +455,9 @@ EOD;
|
|||
} else {
|
||||
$this->setTemplateFile('group_list');
|
||||
}
|
||||
|
||||
$output = $oModuleModel->getModuleFileBoxList();
|
||||
Context::set('fileBoxList', $output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1628,7 +1628,6 @@
|
|||
$logged_info = Context::get('logged_info');
|
||||
// Get what you want to modify the original information
|
||||
if(!$this->memberInfo) $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
|
||||
if(!$args->user_id) $args->user_id = $this->memberInfo->user_id;
|
||||
// Control of essential parameters
|
||||
if($args->allow_mailing!='Y') $args->allow_mailing = 'N';
|
||||
if($args->allow_message && !in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
|
||||
|
|
@ -1645,12 +1644,6 @@
|
|||
// Website, blog, checks the address
|
||||
if($args->homepage && !preg_match("/^[a-z]+:\/\//is",$args->homepage)) $args->homepage = 'http://'.$args->homepage;
|
||||
if($args->blog && !preg_match("/^[a-z]+:\/\//is",$args->blog)) $args->blog = 'http://'.$args->blog;
|
||||
// ID, nickname, email address of the redundancy check
|
||||
$member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id);
|
||||
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_user_id');
|
||||
|
||||
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
|
||||
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_nick_name');
|
||||
|
||||
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address);
|
||||
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_email_address');
|
||||
|
|
@ -1658,9 +1651,15 @@
|
|||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
// DB in the update
|
||||
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
|
||||
$orgMemberInfo = $output->data;
|
||||
if($args->password) $args->password = md5($args->password);
|
||||
else $args->password = $this->memberInfo->password;
|
||||
if(!$args->user_name) $args->user_name = $this->memberInfo->user_name;
|
||||
else $args->password = $orgMemberInfo->password;
|
||||
|
||||
if(!$args->user_name) $args->user_name = $orgMemberInfo->user_name;
|
||||
if(!$args->user_id) $args->user_id = $orgMemberInfo->user_id;
|
||||
if(!$args->nick_name) $args->user_name = $orgMemberInfo->nick_name;
|
||||
|
||||
if(!$args->description) $args->description = '';
|
||||
$output = executeQuery('member.updateMember', $args);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
<column name="is_default" var="is_default" default="N" notnull="notnull" />
|
||||
<column name="description" var="description" default="" />
|
||||
<column name="image_mark" var="image_mark" default="" />
|
||||
<column name="list_order" var="list_order" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="group_srl" var="group_srl" notnull="notnull" filter="number" />
|
||||
|
|
|
|||
|
|
@ -3,12 +3,10 @@
|
|||
<table name="member" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="email_address" var="email_address" filter="email" notnull="notnull" />
|
||||
<column name="password" var="password" notnull="notnull" />
|
||||
<column name="email_id" var="email_id" notnull="notnull" />
|
||||
<column name="email_host" var="email_host" notnull="notnull" />
|
||||
<column name="user_name" var="user_name" notnull="notnull" minlength="2" maxlength="40" />
|
||||
<column name="nick_name" var="nick_name" notnull="notnull" minlength="2" maxlength="40" />
|
||||
<column name="user_id" var="user_id" notnull="notnull" />
|
||||
<column name="find_account_question" var="find_account_question" />
|
||||
<column name="find_account_answer" var="find_account_answer" />
|
||||
<column name="homepage" var="homepage" default="" />
|
||||
|
|
|
|||
|
|
@ -1,102 +1,148 @@
|
|||
<!--%import("filter/update_group.xml")-->
|
||||
|
||||
<!--#include("header.html")-->
|
||||
<!--%load_js_plugin("ui")-->
|
||||
<!--%load_js_plugin("filebox")-->
|
||||
|
||||
|
||||
<!-- 그룹의 삭제와 관련된 form -->
|
||||
<form ruleset="deleteGroup" id="fo_group_info" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procMemberAdminDeleteGroup" />
|
||||
<input type="hidden" name="group_srl" value="" />
|
||||
</form>
|
||||
|
||||
<form id="fo_group_order" action="./" method="get">
|
||||
<input type="hidden" name="act" value="procMemberAdminUpdateGroupOrder" />
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->group_order}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->group_title}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->description}</div></th>
|
||||
<th scope="col"><div>{$lang->regdate}</div></th>
|
||||
<th scope="col"><div>{$lang->is_default}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->group_order_change}</div></th>
|
||||
<th scope="col" colspan="2"><div> </div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@if(!count($group_list))-->
|
||||
<tr>
|
||||
<td colspan="7">{$lang->msg_group_is_null}</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
{@$__i=1}
|
||||
<!--@foreach($group_list as $group_srl => $group_info)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<input type="hidden" name="group_srls[]" value="{$group_info->group_srl}" />
|
||||
<td>{$__i++}</td>
|
||||
<td><!--@if($config->group_image_mark=='Y' && $group_info->image_mark)--><img src="{$group_info->image_mark}" style="vertical-align: middle; margin-right: 3px;" /><!--@endif-->{$group_info->title}</td>
|
||||
<td>{nl2br($group_info->description)} </td>
|
||||
<td>{zdate($group_info->regdate,"Y-m-d H:i:s")}</td>
|
||||
<td><!--@if($group_info->is_default=='Y')-->Y<!--@else--> <!--@end--></td>
|
||||
<td><a href="#" class="_up">위로</a> <a href="#" class="_down"><span>아래로</span></a></td>
|
||||
<td><a href="{getUrl('group_srl',$group_info->group_srl)}" title="{$lang->cmd_modify}" class="buttonSet buttonSetting"><span>{$lang->cmd_modify}</span></a></td>
|
||||
<td>
|
||||
<!--@if($group_info->is_default!='Y' && $group_info->is_admin !='Y')-->
|
||||
<a href="#" onclick="doUpdateGroup('{$group_info->group_srl}','delete','{$lang->confirm_delete}');return false;" title="{$lang->cmd_delete}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a>
|
||||
<!--@else-->
|
||||
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th colspan="8" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<!-- 그룹 추가 -->
|
||||
<load target="js/member_admin_group.js" />
|
||||
<script type="text/javascript" >
|
||||
xe.lang.groupDeleteMessage = '{$lang->msg_group_delete}';
|
||||
xe.lang.multilingual = '{$lang->cmd_set_multilingual}';
|
||||
xe.lang.modify = '{$lang->cmd_modify}';
|
||||
xe.lang.delete = '{$lang->cmd_delete}';
|
||||
</script>
|
||||
<style type="text/css">
|
||||
#imageMarkList li img,._imageMarkButton img {max-height:16px}
|
||||
</style>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="insertGroup" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procMemberAdminInsertGroup" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="group_srl" value="" />
|
||||
<div class="content" id="content">
|
||||
<h1 class="h1">{$lang->group}</h1>
|
||||
<form action="" class="form" method="post" ruleset="insertGroupConfig">
|
||||
<input type="hidden" name="act" value="procMemberAdminGroupConfig" />
|
||||
{$lang->use_group_image_mark}
|
||||
<input type="radio" name="group_image_mark" id="yes" value="Y" checked="checked"|cond="$config->group_image_mark == 'Y'" /> <label for="yes">{$lang->cmd_yes}</label>
|
||||
<input type="radio" name="group_image_mark" id="no" value="N" checked="checked"|cond="$config->group_image_mark != 'Y'" /> <label for="no">{$lang->cmd_no}</label>
|
||||
<div class="table even">
|
||||
<table width="100%" border="1" cellspacing="0" class="sortable">
|
||||
<caption>
|
||||
<strong>{count($group_list)}</strong> groups are exist.
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->group_title}</th>
|
||||
<th scope="col">{$lang->description}</th>
|
||||
<th scope="col">{$lang->is_default}
|
||||
[<a href="#helpDefault" class="tgAnchor">?</a>]
|
||||
<div class="tgContent layer" id="helpDefault" style="right:0">
|
||||
<p>회원 가입을 한 사람이 최초에 속하는 그룹을 말합니다.</p>
|
||||
</div>
|
||||
</th>
|
||||
<th scope="col" class="_imageMarkButton">Image Mark</th>
|
||||
<th scope="col">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td class="_imageMarkButton"> </td>
|
||||
<td><a href="#" class="_addGroup">Add Group</a></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody class="uDrag _groupList">
|
||||
<tr loop="$group_list=>$group_srl,$group_info">
|
||||
<td class="multiLangEdit"><div class="wrap" style="height:22px"><button type="button" class="dragBtn">Move to</button>
|
||||
<input type="hidden" name="group_srls[]" value="{$group_info->group_srl}" />
|
||||
<input type="hidden" name="group_titles[]" value="{htmlspecialchars($group_info->title)}" class="vLang"/>
|
||||
<input type="text" value="{$group_info->title}" class="vLang" style="width:120px;display:inline" />
|
||||
<!-- Suggestion -->
|
||||
<div class="suggestion">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /Suggestion -->
|
||||
<span class="desc"><a href="#langEdit" class="tgAnchor editUserLang">{$lang->cmd_set_multilingual}</a></span>
|
||||
</div>
|
||||
</td>
|
||||
<td><input type="text" name="descriptions[]" value="{$group_info->description}" style="width:240px" /></td>
|
||||
<td><input type="radio" name="defaultGroup" value="{$group_info->group_srl}" title="Default" checked="checked"|cond="$group_info->is_default=='Y'" /></td>
|
||||
<td class="_imageMarkButton"><input type="hidden" name="image_marks[]" value="{$group_info->image_mark}" class="_imgMarkHidden" />
|
||||
<img src="{$group_info->image_mark}" alt="{$group_info->title}" cond="$config->group_image_mark == 'Y' && $group_info->image_mark" />
|
||||
<a href="#imageMark" class="modalAnchor _imageMark">{$lang->cmd_modify}</a></td>
|
||||
<td><div class="_deleteTD" style="display:none"|cond="$group_info->is_default == 'Y'"><a href="#{$group_srl}" class="_deleteGroup">{$lang->cmd_delete}</a></div></td>
|
||||
</tr>
|
||||
<tr style="display:none" class="_template">
|
||||
<td class="multiLangEdit"><div class="wrap" style="height:22px"><button type="button" class="dragBtn">Move to</button>
|
||||
<input type="hidden" name="group_srls[]" value="new" disabled="disabled"/>
|
||||
<input type="hidden" name="group_titles[]" value="" disabled="disabled" class="vLang" />
|
||||
<input type="text" value="" class="vLang" style="width:120px;display:inline" />
|
||||
<!-- Suggestion -->
|
||||
<div class="suggestion">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /Suggestion -->
|
||||
<span class="desc"><a href="#langEdit" class="tgAnchor editUserLang">{$lang->cmd_set_multilingual}</a></span>
|
||||
</div>
|
||||
</td>
|
||||
<td><input type="text" name="descriptions[]" value="" style="width:240px" disabled="disabled" /></td>
|
||||
<td><input type="radio" name="defaultGroup" value="" title="Default" disabled="disabled" /></td>
|
||||
<td class="_imageMarkButton"><input type="hidden" name="image_marks[]" value="" class="_imgMarkHidden" disabled="disabled" />
|
||||
<a href="#imageMark" class="modalAnchor _imageMark">{$lang->cmd_modify}</a></td>
|
||||
<td><div class="_deleteTD"><a href="#new" class="_deleteGroup">{$lang->cmd_delete}</a></div></td>
|
||||
</tr>
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->group_title}</div></th>
|
||||
<td class="wide"><input type="text" name="title" class="inputTypeText w400" /></td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->is_default}</div></th>
|
||||
<td><input type="checkbox" name="is_default" value="Y" class="checkbox" /> {$lang->about_member_default}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->description}</div></th>
|
||||
<td><textarea name="description" class="inputTypeTextArea w400"></textarea></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</form>
|
||||
<!-- Multilingual -->
|
||||
<div id="langEdit" class="langEdit tgContent">
|
||||
<ul>
|
||||
<li class="ko"><label for="ko_var1">Korean</label> <input type="text" value="안녕 세상아!" id="ko_var1" /></li>
|
||||
<li class="en"><label for="en_var1">English</label> <input type="text" value="Hello World!" id="en_var1" /></li>
|
||||
<li class="ja"><label for="ja_var1">Japanese</label> <input type="text" value="" id="ja_var1" /></li>
|
||||
<li class="zh"><label for="zhcn_var1">Chinese(Simplified)</label> <input type="text" value="" id="zhcn_var1" /></li>
|
||||
<li class="zh"><label for="zhtw_var1">Chinese(Traditional)</label> <input type="text" value="" id="zhtw_var1" /></li>
|
||||
<li class="fr"><label for="fr_var1">French</label> <input type="text" value="" id="fr_var1" /></li>
|
||||
<li class="de"><label for="de_var1">Deutsch</label> <input type="text" value="" id="de_var1" /></li>
|
||||
<li class="ru"><label for="ru_var1">Russian</label> <input type="text" value="" id="ru_var1" /></li>
|
||||
<li class="es"><label for="es_var1">Spanish</label> <input type="text" value="" id="es_var1" /></li>
|
||||
<li class="tr"><label for="tr_var1">Turkish</label> <input type="text" value="" id="tr_var1" /></li>
|
||||
<li class="vi"><label for="vi_var1">Vietnamese</label> <input type="text" value="" id="vi_var1" /></li>
|
||||
<li class="mn"><label for="mn_var1">Mongolian</label> <input type="text" value="" id="mn_var1" /></li>
|
||||
</ul>
|
||||
<div class="action">
|
||||
<!-- 여기부터 기존 랭귀지 변수를 수정한 경우에만 보인다 -->
|
||||
<p>다국어 텍스트가 변경되었습니다. <em>업데이트</em> 버튼을 클릭하면 같은 텍스트를 사용하는 다른 페이지에도 반영됩니다. <em>새로 저장</em> 버튼을 클릭하면 이 페이지에만 적용됩니다.</p>
|
||||
<div class="btnArea">
|
||||
<span class="btn small"><input type="submit" value="업데이트" /></span>
|
||||
<span class="btn small"><input type="submit" value="새로저장" /></span>
|
||||
</div>
|
||||
<!-- 여기까지 기존 랭귀지 변수를 수정한 경우에만 보인다 -->
|
||||
<p><a href="#">다국어 텍스트 관리</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->group_image_mark}</div></th>
|
||||
<td class="left">
|
||||
<div id="filebox_preview_image_mark" style="width:100px;height:100px;display:none"></div>
|
||||
<input type="hidden" name="image_mark" value="" />
|
||||
<span class="button black"><button type="button" onclick="XE.filebox.open(jQuery('[name=image_mark]').get(0), 'jpg,jpeg,gif,png')">{$lang->cmd_select}</button></span>
|
||||
<span id="filebox_cancel_image_mark" class="button red" style="display:none"><button type="button" onclick="XE.filebox.cancel('image_mark')">{$lang->cmd_delete}</button></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th colspan="2" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<div class="modal" id="imageMark">
|
||||
<div class="fg portlet">
|
||||
<div class="_useImageMark" style="display:none">
|
||||
<h2>Image Mark 사용여부</h2>
|
||||
<input id="useImageMark" type="radio" name="useImageMark" value="Y" />
|
||||
<label for="useImageMark">{$lang->use}</label>
|
||||
<input id="noImageMark" type="radio" name="useImageMark" value="N" />
|
||||
<label for="noImageMark">{$lang->notuse}</label>
|
||||
</div>
|
||||
<!--@if($fileBoxList)-->
|
||||
<div>
|
||||
<h2>사용 가능한 Image Mark</h2>
|
||||
<ul class="lined" id="imageMarkList">
|
||||
<li loop="$fileBoxList=>$key,$fileInfo"><img src="{$fileInfo->filename}" alt="{$fileInfo->comment}" /> <span class="side"><a href="#" class="_selectImageMark">{$lang->cmd_select}</a></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<h2>Image Mark 추가</h2>
|
||||
<a href="#">Image Mark 관리바로가기...</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9,10 +9,18 @@
|
|||
<input type="hidden" name="act" value="procMemberAdminInsert" />
|
||||
<input type="hidden" name="member_srl" value="{$member_srl}" />
|
||||
<input type="hidden" name="signature" value="{htmlspecialchars($member_info->signature)}" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('act', $act)}" />
|
||||
<h1 class="h1">{$lang->msg_update_member}</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->email_address} <em style="color:red">*</em></p>
|
||||
<p class="a">
|
||||
<input type="hidden" name="email_address" value="{$member_info->email_address}" />
|
||||
<input type="text" name="email_address" value="{$member_info->email_address}" disabled="disabled" />
|
||||
</p>
|
||||
</li>
|
||||
<li loop="$formTags=>$formTag">
|
||||
<p class="q"><label for="id">{$formTag->title}</label></p>
|
||||
<p class="q">{$formTag->title}</p>
|
||||
<div class="a" cond="$formTag->name != 'signature'">{$formTag->inputTag}</div>
|
||||
<div class="a" cond="$formTag->name =='signature'">{$editor}</div>
|
||||
</li>
|
||||
|
|
|
|||
106
modules/member/tpl/js/member_admin_group.js
Normal file
106
modules/member/tpl/js/member_admin_group.js
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
jQuery(function ($){
|
||||
if($('input[name=group_image_mark]:checked').val() == 'Y') $('._imageMarkButton').show();
|
||||
else $('._imageMarkButton').hide();
|
||||
|
||||
$('input[name=group_image_mark]').click(function (){
|
||||
var checked = $(this).val();
|
||||
if (checked == 'Y') $('._imageMarkButton').show();
|
||||
else $('._imageMarkButton').hide();
|
||||
});
|
||||
|
||||
$('input:radio[name=defaultGroup]').click(function(){
|
||||
$('._deleteTD').show();
|
||||
if ($(this).attr('checked')){
|
||||
$(this).closest('tr').find('._deleteTD').hide();
|
||||
}
|
||||
});
|
||||
/**
|
||||
* use dispMemberAdminSiteMemberGroup
|
||||
**/
|
||||
$('a.modalAnchor._imageMark').bind('before-open.mw', function(e){
|
||||
var $targetImage = $(e.target).parent().find('img');
|
||||
var $imageMarkHidden = $(e.target).parent().find('._imgMarkHidden');
|
||||
if ($targetImage.length){
|
||||
$("._useImageMark").show();
|
||||
$("#useImageMark").attr("checked", "checked");
|
||||
$("#noImageMark").removeAttr("checked")
|
||||
.click(function (){
|
||||
$targetImage.remove();
|
||||
$imageMarkHidden.val('');
|
||||
$('a.modalAnchor._imageMark').trigger('close.mw');
|
||||
});
|
||||
}else{
|
||||
$("._useImageMark").hide();
|
||||
$("#useImageMark").removeAttr("checked");
|
||||
$("#noImageMark").attr("checked", "checked");
|
||||
}
|
||||
|
||||
$('a._selectImageMark').click(function(event){
|
||||
event.preventDefault();
|
||||
var selectImgSrc = $(event.target).parent().parent().find('img').attr('src');
|
||||
if ($targetImage.length){
|
||||
$targetImage.attr('src', selectImgSrc);
|
||||
}else{
|
||||
$targetImage = $('<img src="'+selectImgSrc+'" alt="" />').insertBefore($imageMarkHidden);
|
||||
}
|
||||
$imageMarkHidden.val(selectImgSrc);
|
||||
$('a.modalAnchor._imageMark').trigger('close.mw');
|
||||
});
|
||||
});
|
||||
|
||||
$('._deleteGroup').click(function (event){
|
||||
event.preventDefault();
|
||||
var $target = $(event.target).closest('tr');
|
||||
var group_srl = $(event.target).attr('href').substr(1);
|
||||
if(!confirm(xe.lang.groupDeleteMessage)) return;
|
||||
console.log(group_srl);
|
||||
|
||||
if (group_srl.indexOf("new") > 0){
|
||||
$target.remove();
|
||||
return;
|
||||
}
|
||||
|
||||
exec_xml(
|
||||
'member',
|
||||
'procMemberAdminDeleteGroup',
|
||||
{group_srl:group_srl},
|
||||
function(){location.reload();},
|
||||
['error','message','tpl']
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
$('._addGroup').click(function (event){
|
||||
var $tbody = $('._groupList');
|
||||
var index = 'new'+ new Date().getTime();
|
||||
|
||||
$tbody.find('._template').clone(true)
|
||||
.removeClass('_template')
|
||||
.find('input').removeAttr('disabled').end()
|
||||
.find('input:radio').val(index).end()
|
||||
.find('input[name="group_srls[]"]').val(index).end()
|
||||
.show()
|
||||
.appendTo($tbody);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('a.tgAnchor.editUserLang').bind('before-open.tc', function(e){
|
||||
var $target = $(e.target).parent();
|
||||
$('#langEdit').insertBefore($target);
|
||||
});
|
||||
//add plugin
|
||||
var CheckTitle = xe.createPlugin('checkTitle', {
|
||||
API_BEFORE_VALIDATE : function(sender, params){
|
||||
$('input[name="group_titles[]"]').each(function(index){
|
||||
if ($(this).val() == ""){
|
||||
$(this).val($(this).closest('td').find('input:text.vLang').val());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var checkTitle = new CheckTitle();
|
||||
var v = xe.getApp('Validator')[0];
|
||||
v.registerPlugin(checkTitle);
|
||||
});
|
||||
|
|
@ -13,7 +13,7 @@ jQuery(function ($){
|
|||
for (var i = 0; i<$memberList.length; i++){
|
||||
memberInfo = $memberList.eq(i).val().split('\t');
|
||||
memberSrl = memberInfo.shift();
|
||||
memberTag += '<tr><td>#email_address#</td><td>'+memberInfo.join("</td><td>")+'<input type="hidden" name="member_srls[]" value="'+memberSrl+'"/></td></tr>'
|
||||
memberTag += '<tr><td>'+memberInfo.join("</td><td>")+'<input type="hidden" name="member_srls[]" value="'+memberSrl+'"/></td></tr>'
|
||||
}
|
||||
$('#popupBody').empty().html(memberTag);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -29,14 +29,12 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->email}</th>
|
||||
<th scope="col">{$lang->user_id}</th>
|
||||
<th scope="col">{$lang->user_name}</th>
|
||||
<th scope="col">{$lang->nick_name}</th>
|
||||
<th scope="col" loop="$usedIdentifiers=>$name,$title">{$title}</th>
|
||||
<th scope="col">{$lang->signup_date}</th>
|
||||
<th scope="col">{$lang->last_login}</th>
|
||||
<th scope="col" class="text">{$lang->group}</th>
|
||||
<th scope="col">{$lang->status}</th>
|
||||
<th scope="col">{$lang->view}</th>
|
||||
<th scope="col">{$lang->cmd_view}</th>
|
||||
<th scope="col">{$lang->cmd_modify}</th>
|
||||
<th scope="col">
|
||||
<input type="checkbox" title="Check All" data-name="user" />
|
||||
|
|
@ -46,14 +44,12 @@
|
|||
<tfoot>
|
||||
<tr>
|
||||
<th scope="col">{$lang->email}</th>
|
||||
<th scope="col">{$lang->user_id}</th>
|
||||
<th scope="col">{$lang->user_name}</th>
|
||||
<th scope="col">{$lang->nick_name}</th>
|
||||
<th scope="col" loop="$usedIdentifiers=>$name,$title">{$title}</th>
|
||||
<th scope="col">{$lang->signup_date}</th>
|
||||
<th scope="col">{$lang->last_login}</th>
|
||||
<th scope="col" class="text">{$lang->group}</th>
|
||||
<th scope="col">{$lang->status}</th>
|
||||
<th scope="col">{$lang->view}</th>
|
||||
<th scope="col">{$lang->cmd_view}</th>
|
||||
<th scope="col">{$lang->cmd_modify}</th>
|
||||
<th scope="col">
|
||||
<input type="checkbox" title="Check All" data-name="user" />
|
||||
|
|
@ -61,24 +57,29 @@
|
|||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr loop="$member_list=>$no,$member_info">
|
||||
<td>
|
||||
<a href="#popup_menu_area" class="member_{$member_info->member_srl}">{$member_info->email_address}</a>
|
||||
</td>
|
||||
{@ $member_info->group_list = implode(', ', $member_info->group_list)}
|
||||
<td>{$member_info->user_id}</td>
|
||||
<td>{$member_info->user_name}</td>
|
||||
<td>{$member_info->nick_name}</td>
|
||||
<td>{zdate($member_info->regdate, 'Y-m-d')}</td>
|
||||
<td>{zdate($member_info->last_login, 'Y-m-d')}</td>
|
||||
<td class="text">{$member_info->group_list} </td>
|
||||
{@ $lang_denied = ($member_info->denied == 'N')?$lang->use:$lang->denied}
|
||||
<td>{$lang_denied}</td>
|
||||
<td><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminInfo', 'member_srl', $member_info->member_srl)}">{$lang->view}</a></td>
|
||||
<td><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminInsert', 'member_srl', $member_info->member_srl)}">{$lang->cmd_modify}</a></td>
|
||||
<td><input type="checkbox" name="user" value="{$member_info->member_srl."\t".$member_info->user_id."\t".$member_info->user_name."\t".$member_info->nick_name."\t".$member_info->group_list."\t".$lang_denied}" disabled="disabled"|cond="$member_info->is_admin == 'Y'"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tr loop="$member_list=>$no,$member_info">
|
||||
{@$member_info = get_object_vars($member_info)}
|
||||
<td>
|
||||
<span class="member_{$member_info['member_srl']}">{getEncodeEmailAddress($member_info['email_address'])}</span>
|
||||
</td>
|
||||
{@ $member_info['group_list'] = implode(', ', $member_info['group_list'])}
|
||||
<td loop="$usedIdentifiers=>$name,$title">{$member_info[$name]}</td>
|
||||
<td>{zdate($member_info['regdate'], 'Y-m-d')}</td>
|
||||
<td>{zdate($member_info['last_login'], 'Y-m-d')}</td>
|
||||
<td class="text">{$member_info['group_list']} </td>
|
||||
{@ $lang_denied = ($member_info['denied'] == 'N')?$lang->use:$lang->denied}
|
||||
<td>{$lang_denied}</td>
|
||||
<td>
|
||||
<a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminInfo', 'member_srl', $member_info['member_srl'])}">{$lang->cmd_view}</a>
|
||||
</td>
|
||||
<td><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminInsert', 'member_srl', $member_info['member_srl'])}">{$lang->cmd_modify}</a></td>
|
||||
{@$used_values = ''}
|
||||
<!--@foreach($usedIdentifiers as $name=>$title)-->
|
||||
{@$used_values .= "\t".$member_info[$name]}
|
||||
<!--@end-->
|
||||
<td><input type="checkbox" name="user" value="{$member_info['member_srl']."\t".$member_info['email_address'].$used_values."\t".$member_info['group_list']."\t".$lang_denied}" disabled="disabled"|cond="$member_info['is_admin'] == 'Y'"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
|
|
@ -95,9 +96,7 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->email_address}</th>
|
||||
<th scope="col">{$lang->user_id}</th>
|
||||
<th scope="col">{$lang->user_name}</th>
|
||||
<th scope="col">{$lang->nick_name}</th>
|
||||
<th scope="col" loop="$usedIdentifiers=>$name,$title">{$title}</th>
|
||||
<th scope="col" class="text">{$lang->group}</th>
|
||||
<th scope="col">{$lang->status}</th>
|
||||
</tr>
|
||||
|
|
@ -166,6 +165,7 @@
|
|||
<form action="" method="post">
|
||||
<select name="search_target">
|
||||
<option value="">{$lang->search_target}</option>
|
||||
{@$lang->search_target_list = array_merge($lang->search_target_list, $usedIdentifiers)}
|
||||
<option value="{$key}" loop="$lang->search_target_list=>$key,$val" selected="selected"|cond="$search_target==$key">{$val}</option>
|
||||
</select>
|
||||
<input type="text" name="search_keyword" value="{htmlspecialchars($search_keyword)}" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue