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:
devjin 2011-09-02 06:47:57 +00:00
parent b54f869704
commit 8f2180dd3f
12 changed files with 401 additions and 185 deletions

View file

@ -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">

View file

@ -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>

View file

@ -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();

View file

@ -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);
}
/**

View file

@ -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);

View file

@ -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" />

View file

@ -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="" />

View file

@ -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>&nbsp;</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)}&nbsp;</td>
<td>{zdate($group_info->regdate,"Y-m-d H:i:s")}</td>
<td><!--@if($group_info->is_default=='Y')-->Y<!--@else-->&nbsp;<!--@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-->
&nbsp;
<!--@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>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td class="_imageMarkButton">&nbsp;</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>

View file

@ -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>

View 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);
});

View file

@ -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);
});

View file

@ -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}&nbsp;</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']}&nbsp;</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)}" />