mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-22 05:15:29 +09:00
Author name update.
NHN developers@xpressengine.com http://xpressengine.com/ git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7676 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7d1fa86e5c
commit
8f385a592b
603 changed files with 67379 additions and 67522 deletions
|
|
@ -1,33 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="0.2">
|
||||
<title xml:lang="ko">회원 관리</title>
|
||||
<title xml:lang="zh-CN">会员管理</title>
|
||||
<title xml:lang="jp">会員 管理</title>
|
||||
<title xml:lang="en">Member Management</title>
|
||||
<title xml:lang="vi">Quản lý thành viên</title>
|
||||
<title xml:lang="es">Usuario Gestión</title>
|
||||
<title xml:lang="ru">Управление пользователями</title>
|
||||
<title xml:lang="zh-TW">會員 管理</title>
|
||||
<description xml:lang="ko">회원 관리 및 회원 관련 설정등을 하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">对会员进行管理及相关设置的模块。</description>
|
||||
<description xml:lang="jp">会員管理及び会員関連設定などを行うモジュールです。</description>
|
||||
<description xml:lang="en">This module is for managing or configuring members.</description>
|
||||
<description xml:lang="vi">Module này dành cho việc quản lý và tạo thành viên.</description>
|
||||
<description xml:lang="es">Este módulo es para el manejo y la configuración de los usuarios.</description>
|
||||
<description xml:lang="ru">Этот модуль служит для управления и конфигурирования пользователей.</description>
|
||||
<description xml:lang="zh-TW">對會員進行管理與相關設置的模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>member</category>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="vi">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="0.2">
|
||||
<title xml:lang="ko">회원 관리</title>
|
||||
<title xml:lang="zh-CN">会员管理</title>
|
||||
<title xml:lang="jp">会員 管理</title>
|
||||
<title xml:lang="en">Member Management</title>
|
||||
<title xml:lang="vi">Quản lý thành viên</title>
|
||||
<title xml:lang="es">Usuario Gestión</title>
|
||||
<title xml:lang="ru">Управление пользователями</title>
|
||||
<title xml:lang="zh-TW">會員 管理</title>
|
||||
<description xml:lang="ko">회원 관리 및 회원 관련 설정등을 하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">对会员进行管理及相关设置的模块。</description>
|
||||
<description xml:lang="jp">会員管理及び会員関連設定などを行うモジュールです。</description>
|
||||
<description xml:lang="en">This module is for managing or configuring members.</description>
|
||||
<description xml:lang="vi">Module này dành cho việc quản lý và tạo thành viên.</description>
|
||||
<description xml:lang="es">Este módulo es para el manejo y la configuración de los usuarios.</description>
|
||||
<description xml:lang="ru">Этот модуль служит для управления и конфигурирования пользователей.</description>
|
||||
<description xml:lang="zh-TW">對會員進行管理與相關設置的模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>member</category>
|
||||
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NHN</name>
|
||||
<name xml:lang="vi">NHN</name>
|
||||
<name xml:lang="zh-CN">NHN</name>
|
||||
<name xml:lang="jp">NHN</name>
|
||||
<name xml:lang="en">NHN</name>
|
||||
<name xml:lang="es">NHN</name>
|
||||
<name xml:lang="ru">NHN</name>
|
||||
<name xml:lang="zh-TW">NHN</name>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file en.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief English Language Pack (Only Basic Things)
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file es.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief Spanish Language Pack (Only Basic Things)
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file fr.lang.php
|
||||
* @author zero (zero@nzeo.com) Traduit par Pierre Duvent (PierreDuvent@gmail.com)
|
||||
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent (PierreDuvent@gmail.com)
|
||||
* @brief Paquet du langage en français pour le module de Membre
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/member/jp.lang.php
|
||||
* @author zero (zero@nzeo.com) 翻訳:RisaPapa、ミニミ、liahona
|
||||
* @author NHN (developers@xpressengine.com) 翻訳:RisaPapa、ミニミ、liahona
|
||||
* @brief 日本語言語パッケージ(基本的な内容のみ)
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ko.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 한국어 언어팩 (기본적인 내용만 수록)
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ru.lang.php
|
||||
* @author zero <zero@nzeo.com> | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░ * @File : common/lang/vi.lang.php ░░
|
||||
░░ * @Author : zero (zero@nzeo.com) ░░
|
||||
░░ * @Author : NHN (developers@xpressengine.com) ░░
|
||||
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
|
||||
░░ * @Website: http://vietxe.net ░░
|
||||
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file zh-CN.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 会员模块简体中文语言包
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/member/lang/zh-TW.lang.php
|
||||
* @author zero (zero@nzeo.com) 翻譯:royallin
|
||||
* @author NHN (developers@xpressengine.com) 翻譯:royallin
|
||||
* @brief 會員(member)模組正體中文語言
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @class memberAdminController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module의 admin controller class
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,136 +1,136 @@
|
|||
<?php
|
||||
/**
|
||||
* @class memberAdminModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief member module의 admin model class
|
||||
**/
|
||||
|
||||
class memberAdminModel extends member {
|
||||
|
||||
/**
|
||||
* @brief 자주 호출될거라 예상되는 데이터는 내부적으로 가지고 있자...
|
||||
**/
|
||||
var $member_info = NULL;
|
||||
var $member_groups = NULL;
|
||||
var $join_form_list = NULL;
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 목록을 구함
|
||||
**/
|
||||
function getMemberList() {
|
||||
// 검색 옵션 정리
|
||||
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
|
||||
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
|
||||
$args->selected_group_srl = Context::get('selected_group_srl');
|
||||
|
||||
$search_target = trim(Context::get('search_target'));
|
||||
$search_keyword = trim(Context::get('search_keyword'));
|
||||
|
||||
if($search_target && $search_keyword) {
|
||||
switch($search_target) {
|
||||
case 'user_id' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_id = $search_keyword;
|
||||
break;
|
||||
case 'user_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_name = $search_keyword;
|
||||
break;
|
||||
case 'nick_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_nick_name = $search_keyword;
|
||||
break;
|
||||
case 'email_address' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_email_address = $search_keyword;
|
||||
break;
|
||||
case 'regdate' :
|
||||
$args->s_regdate = ereg_replace("[^0-9]","",$search_keyword);
|
||||
break;
|
||||
case 'regdate_more' :
|
||||
$args->s_regdate_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'regdate_less' :
|
||||
$args->s_regdate_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'last_login' :
|
||||
$args->s_last_login = $search_keyword;
|
||||
break;
|
||||
case 'last_login_more' :
|
||||
$args->s_last_login_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'last_login_less' :
|
||||
$args->s_last_login_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'extra_vars' :
|
||||
$args->s_extra_vars = ereg_replace("[^0-9]","",$search_keyword);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
|
||||
$sort_index = Context::get('sort_index');
|
||||
if($sort_index != 'last_login') $sort_index = "member_srl";
|
||||
if($args->selected_group_srl) {
|
||||
$query_id = 'member.getMemberListWithinGroup';
|
||||
$args->sort_index = "member.".$sort_index;
|
||||
} else {
|
||||
$query_id = 'member.getMemberList';
|
||||
$args->sort_index = $sort_index;
|
||||
}
|
||||
$sort_order = Context::get('sort_order');
|
||||
if($sort_order != "asc") $sort_order = "desc";
|
||||
$args->sort_order = $sort_order;
|
||||
Context::set('sort_order', $sort_order);
|
||||
|
||||
// 기타 변수들 정리
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 40;
|
||||
$args->page_count = 10;
|
||||
return executeQuery($query_id, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사이트별 회원 목록을 구함
|
||||
**/
|
||||
function getSiteMemberList($site_srl, $page = 1) {
|
||||
$args->site_srl = $site_srl;
|
||||
$args->page = $page;
|
||||
$args->list_count = 40;
|
||||
$args->page_count = 10;
|
||||
$query_id = 'member.getSiteMemberList';
|
||||
$output = executeQueryArray($query_id, $args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 모듈의 특정 스킨에 속한 컬러셋 목록을 return
|
||||
**/
|
||||
function getMemberAdminColorset() {
|
||||
$skin = Context::get('skin');
|
||||
if(!$skin) $tpl = "";
|
||||
else {
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
|
||||
Context::set('skin_info', $skin_info);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
if(!$config->colorset) $config->colorset = "white";
|
||||
Context::set('config', $config);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
|
||||
}
|
||||
|
||||
$this->add('tpl', $tpl);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class memberAdminModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module의 admin model class
|
||||
**/
|
||||
|
||||
class memberAdminModel extends member {
|
||||
|
||||
/**
|
||||
* @brief 자주 호출될거라 예상되는 데이터는 내부적으로 가지고 있자...
|
||||
**/
|
||||
var $member_info = NULL;
|
||||
var $member_groups = NULL;
|
||||
var $join_form_list = NULL;
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 목록을 구함
|
||||
**/
|
||||
function getMemberList() {
|
||||
// 검색 옵션 정리
|
||||
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
|
||||
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
|
||||
$args->selected_group_srl = Context::get('selected_group_srl');
|
||||
|
||||
$search_target = trim(Context::get('search_target'));
|
||||
$search_keyword = trim(Context::get('search_keyword'));
|
||||
|
||||
if($search_target && $search_keyword) {
|
||||
switch($search_target) {
|
||||
case 'user_id' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_id = $search_keyword;
|
||||
break;
|
||||
case 'user_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_name = $search_keyword;
|
||||
break;
|
||||
case 'nick_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_nick_name = $search_keyword;
|
||||
break;
|
||||
case 'email_address' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_email_address = $search_keyword;
|
||||
break;
|
||||
case 'regdate' :
|
||||
$args->s_regdate = ereg_replace("[^0-9]","",$search_keyword);
|
||||
break;
|
||||
case 'regdate_more' :
|
||||
$args->s_regdate_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'regdate_less' :
|
||||
$args->s_regdate_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'last_login' :
|
||||
$args->s_last_login = $search_keyword;
|
||||
break;
|
||||
case 'last_login_more' :
|
||||
$args->s_last_login_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'last_login_less' :
|
||||
$args->s_last_login_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14);
|
||||
break;
|
||||
case 'extra_vars' :
|
||||
$args->s_extra_vars = ereg_replace("[^0-9]","",$search_keyword);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
|
||||
$sort_index = Context::get('sort_index');
|
||||
if($sort_index != 'last_login') $sort_index = "member_srl";
|
||||
if($args->selected_group_srl) {
|
||||
$query_id = 'member.getMemberListWithinGroup';
|
||||
$args->sort_index = "member.".$sort_index;
|
||||
} else {
|
||||
$query_id = 'member.getMemberList';
|
||||
$args->sort_index = $sort_index;
|
||||
}
|
||||
$sort_order = Context::get('sort_order');
|
||||
if($sort_order != "asc") $sort_order = "desc";
|
||||
$args->sort_order = $sort_order;
|
||||
Context::set('sort_order', $sort_order);
|
||||
|
||||
// 기타 변수들 정리
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 40;
|
||||
$args->page_count = 10;
|
||||
return executeQuery($query_id, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사이트별 회원 목록을 구함
|
||||
**/
|
||||
function getSiteMemberList($site_srl, $page = 1) {
|
||||
$args->site_srl = $site_srl;
|
||||
$args->page = $page;
|
||||
$args->list_count = 40;
|
||||
$args->page_count = 10;
|
||||
$query_id = 'member.getSiteMemberList';
|
||||
$output = executeQueryArray($query_id, $args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 모듈의 특정 스킨에 속한 컬러셋 목록을 return
|
||||
**/
|
||||
function getMemberAdminColorset() {
|
||||
$skin = Context::get('skin');
|
||||
if(!$skin) $tpl = "";
|
||||
else {
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
|
||||
Context::set('skin_info', $skin_info);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
if(!$config->colorset) $config->colorset = "white";
|
||||
Context::set('config', $config);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
|
||||
}
|
||||
|
||||
$this->add('tpl', $tpl);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,241 +1,241 @@
|
|||
<?php
|
||||
/**
|
||||
* @class memberAdminView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief member module's admin view class
|
||||
**/
|
||||
|
||||
class memberAdminView extends member {
|
||||
|
||||
var $group_list = NULL; ///< group list
|
||||
var $member_info = NULL; ///< selected member info
|
||||
|
||||
/**
|
||||
* @brief initialization
|
||||
**/
|
||||
function init() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// if member_srl exists, set member_info
|
||||
$member_srl = Context::get('member_srl');
|
||||
if($member_srl) {
|
||||
$this->member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
if(!$this->member_info) Context::set('member_srl','');
|
||||
else Context::set('member_info',$this->member_info);
|
||||
}
|
||||
|
||||
// retrieve group list
|
||||
$this->group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $this->group_list);
|
||||
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member list
|
||||
**/
|
||||
function dispMemberAdminList() {
|
||||
|
||||
$oMemberAdminModel = &getAdminModel('member');
|
||||
$oMemberModel = &getModel('member');
|
||||
$output = $oMemberAdminModel->getMemberList();
|
||||
|
||||
// retrieve list of groups for each member
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $member) {
|
||||
$output->data[$key]->group_list = $oMemberModel->getMemberGroups($member->member_srl,0);
|
||||
}
|
||||
}
|
||||
|
||||
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('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('member_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief default configuration for member management
|
||||
**/
|
||||
function dispMemberAdminConfig() {
|
||||
// retrieve configuration via module model instance
|
||||
$oModuleModel = &getModel('module');
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('config',$config);
|
||||
|
||||
// list of skins for member module
|
||||
$skin_list = $oModuleModel->getSkins($this->module_path);
|
||||
Context::set('skin_list', $skin_list);
|
||||
|
||||
// retrieve skins of editor
|
||||
$oEditorModel = &getModel('editor');
|
||||
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList());
|
||||
|
||||
// get an editor
|
||||
$option->primary_key_name = 'temp_srl';
|
||||
$option->content_key_name = 'agreement';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = true;
|
||||
$option->resizable = true;
|
||||
$option->height = 300;
|
||||
$editor = $oEditorModel->getEditor(0, $option);
|
||||
Context::set('editor', $editor);
|
||||
|
||||
$this->setTemplateFile('member_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member information
|
||||
**/
|
||||
function dispMemberAdminInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
Context::set('member_config', $member_config);
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
$this->setTemplateFile('member_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member insert form
|
||||
**/
|
||||
function dispMemberAdminInsert() {
|
||||
// retrieve extend form
|
||||
$oMemberModel = &getModel('member');
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
|
||||
$member_info = Context::get('member_info');
|
||||
$member_info->signature = $oMemberModel->getSignature($this->member_info->member_srl);
|
||||
Context::set('member_info', $member_info);
|
||||
|
||||
// get an editor for the signature
|
||||
if($this->member_info->member_srl) {
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'member_srl';
|
||||
$option->content_key_name = 'signature';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->height = 200;
|
||||
$editor = $oEditorModel->getEditor($this->member_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
}
|
||||
|
||||
$this->setTemplateFile('insert_member');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member delete form
|
||||
**/
|
||||
function dispMemberAdminDeleteForm() {
|
||||
if(!Context::get('member_srl')) return $this->dispMemberAdminList();
|
||||
$this->setTemplateFile('delete_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display group list
|
||||
**/
|
||||
function dispMemberAdminGroupList() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
if($config->group_image_mark_order) $config->group_image_mark_order = explode(',', $config->group_image_mark_order);
|
||||
Context::set('config', $config);
|
||||
|
||||
$group_srl = Context::get('group_srl');
|
||||
|
||||
if($group_srl && $this->group_list[$group_srl]) {
|
||||
Context::set('selected_group', $this->group_list[$group_srl]);
|
||||
$this->setTemplateFile('group_update_form');
|
||||
} else {
|
||||
$this->setTemplateFile('group_list');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 목록 출력
|
||||
**/
|
||||
function dispMemberAdminJoinFormList() {
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 추가로 설정한 가입 항목 가져오기
|
||||
$form_list = $oMemberModel->getJoinFormList();
|
||||
Context::set('form_list', $form_list);
|
||||
|
||||
$this->setTemplateFile('join_form_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 관리 화면 출력
|
||||
**/
|
||||
function dispMemberAdminInsertJoinForm() {
|
||||
// 수정일 경우 대상 join_form의 값을 구함
|
||||
$member_join_form_srl = Context::get('member_join_form_srl');
|
||||
if($member_join_form_srl) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$join_form = $oMemberModel->getJoinForm($member_join_form_srl);
|
||||
|
||||
if(!$join_form) Context::set('member_join_form_srl','',true);
|
||||
else Context::set('join_form', $join_form);
|
||||
}
|
||||
$this->setTemplateFile('insert_join_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 금지 목록 아이디 출력
|
||||
**/
|
||||
function dispMemberAdminDeniedIDList() {
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 사용금지 목록 가져오기
|
||||
$output = $oMemberModel->getDeniedIDList();
|
||||
|
||||
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('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('denied_id_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 그룹 일괄 변경
|
||||
**/
|
||||
function dispMemberAdminManageGroup() {
|
||||
// 선택된 회원 목록을 구함
|
||||
$args->member_srl = trim(Context::get('member_srls'));
|
||||
$output = executeQueryArray('member.getMembers', $args);
|
||||
Context::set('member_list', $output->data);
|
||||
|
||||
// 회원 그룹 목록을 구함
|
||||
$oMemberModel = &getModel('member');
|
||||
Context::set('member_groups', $oMemberModel->getGroups());
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('manage_member_group');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 일괄 삭제
|
||||
**/
|
||||
function dispMemberAdminDeleteMembers() {
|
||||
// 선택된 회원 목록을 구함
|
||||
$args->member_srl = trim(Context::get('member_srls'));
|
||||
$output = executeQueryArray('member.getMembers', $args);
|
||||
Context::set('member_list', $output->data);
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('delete_members');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class memberAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module's admin view class
|
||||
**/
|
||||
|
||||
class memberAdminView extends member {
|
||||
|
||||
var $group_list = NULL; ///< group list
|
||||
var $member_info = NULL; ///< selected member info
|
||||
|
||||
/**
|
||||
* @brief initialization
|
||||
**/
|
||||
function init() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// if member_srl exists, set member_info
|
||||
$member_srl = Context::get('member_srl');
|
||||
if($member_srl) {
|
||||
$this->member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
if(!$this->member_info) Context::set('member_srl','');
|
||||
else Context::set('member_info',$this->member_info);
|
||||
}
|
||||
|
||||
// retrieve group list
|
||||
$this->group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $this->group_list);
|
||||
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member list
|
||||
**/
|
||||
function dispMemberAdminList() {
|
||||
|
||||
$oMemberAdminModel = &getAdminModel('member');
|
||||
$oMemberModel = &getModel('member');
|
||||
$output = $oMemberAdminModel->getMemberList();
|
||||
|
||||
// retrieve list of groups for each member
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $member) {
|
||||
$output->data[$key]->group_list = $oMemberModel->getMemberGroups($member->member_srl,0);
|
||||
}
|
||||
}
|
||||
|
||||
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('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('member_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief default configuration for member management
|
||||
**/
|
||||
function dispMemberAdminConfig() {
|
||||
// retrieve configuration via module model instance
|
||||
$oModuleModel = &getModel('module');
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('config',$config);
|
||||
|
||||
// list of skins for member module
|
||||
$skin_list = $oModuleModel->getSkins($this->module_path);
|
||||
Context::set('skin_list', $skin_list);
|
||||
|
||||
// retrieve skins of editor
|
||||
$oEditorModel = &getModel('editor');
|
||||
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList());
|
||||
|
||||
// get an editor
|
||||
$option->primary_key_name = 'temp_srl';
|
||||
$option->content_key_name = 'agreement';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = true;
|
||||
$option->resizable = true;
|
||||
$option->height = 300;
|
||||
$editor = $oEditorModel->getEditor(0, $option);
|
||||
Context::set('editor', $editor);
|
||||
|
||||
$this->setTemplateFile('member_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member information
|
||||
**/
|
||||
function dispMemberAdminInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
Context::set('member_config', $member_config);
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
$this->setTemplateFile('member_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member insert form
|
||||
**/
|
||||
function dispMemberAdminInsert() {
|
||||
// retrieve extend form
|
||||
$oMemberModel = &getModel('member');
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
|
||||
$member_info = Context::get('member_info');
|
||||
$member_info->signature = $oMemberModel->getSignature($this->member_info->member_srl);
|
||||
Context::set('member_info', $member_info);
|
||||
|
||||
// get an editor for the signature
|
||||
if($this->member_info->member_srl) {
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'member_srl';
|
||||
$option->content_key_name = 'signature';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->height = 200;
|
||||
$editor = $oEditorModel->getEditor($this->member_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
}
|
||||
|
||||
$this->setTemplateFile('insert_member');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display member delete form
|
||||
**/
|
||||
function dispMemberAdminDeleteForm() {
|
||||
if(!Context::get('member_srl')) return $this->dispMemberAdminList();
|
||||
$this->setTemplateFile('delete_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief display group list
|
||||
**/
|
||||
function dispMemberAdminGroupList() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
if($config->group_image_mark_order) $config->group_image_mark_order = explode(',', $config->group_image_mark_order);
|
||||
Context::set('config', $config);
|
||||
|
||||
$group_srl = Context::get('group_srl');
|
||||
|
||||
if($group_srl && $this->group_list[$group_srl]) {
|
||||
Context::set('selected_group', $this->group_list[$group_srl]);
|
||||
$this->setTemplateFile('group_update_form');
|
||||
} else {
|
||||
$this->setTemplateFile('group_list');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 목록 출력
|
||||
**/
|
||||
function dispMemberAdminJoinFormList() {
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 추가로 설정한 가입 항목 가져오기
|
||||
$form_list = $oMemberModel->getJoinFormList();
|
||||
Context::set('form_list', $form_list);
|
||||
|
||||
$this->setTemplateFile('join_form_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 관리 화면 출력
|
||||
**/
|
||||
function dispMemberAdminInsertJoinForm() {
|
||||
// 수정일 경우 대상 join_form의 값을 구함
|
||||
$member_join_form_srl = Context::get('member_join_form_srl');
|
||||
if($member_join_form_srl) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$join_form = $oMemberModel->getJoinForm($member_join_form_srl);
|
||||
|
||||
if(!$join_form) Context::set('member_join_form_srl','',true);
|
||||
else Context::set('join_form', $join_form);
|
||||
}
|
||||
$this->setTemplateFile('insert_join_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 금지 목록 아이디 출력
|
||||
**/
|
||||
function dispMemberAdminDeniedIDList() {
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 사용금지 목록 가져오기
|
||||
$output = $oMemberModel->getDeniedIDList();
|
||||
|
||||
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('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('denied_id_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 그룹 일괄 변경
|
||||
**/
|
||||
function dispMemberAdminManageGroup() {
|
||||
// 선택된 회원 목록을 구함
|
||||
$args->member_srl = trim(Context::get('member_srls'));
|
||||
$output = executeQueryArray('member.getMembers', $args);
|
||||
Context::set('member_list', $output->data);
|
||||
|
||||
// 회원 그룹 목록을 구함
|
||||
$oMemberModel = &getModel('member');
|
||||
Context::set('member_groups', $oMemberModel->getGroups());
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('manage_member_group');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 일괄 삭제
|
||||
**/
|
||||
function dispMemberAdminDeleteMembers() {
|
||||
// 선택된 회원 목록을 구함
|
||||
$args->member_srl = trim(Context::get('member_srls'));
|
||||
$output = executeQueryArray('member.getMembers', $args);
|
||||
Context::set('member_list', $output->data);
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('delete_members');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @class memberAPI
|
||||
* @author sol(sol@ngleader.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member 모듈의 View Action에 대한 API 처리
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,200 +1,200 @@
|
|||
<?php
|
||||
/**
|
||||
* @class member
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief member module의 high class
|
||||
**/
|
||||
class member extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
**/
|
||||
function member() {
|
||||
if(!Context::isInstalled()) return;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// SSL 사용시 회원가입/정보/비밀번호등과 관련된 action에 대해 SSL 전송하도록 지정
|
||||
if(Context::get('_use_ssl') == 'optional') {
|
||||
Context::addSSLAction('dispMemberModifyPassword');
|
||||
Context::addSSLAction('dispMemberSignUpForm');
|
||||
Context::addSSLAction('dispMemberModifyInfo');
|
||||
Context::addSSLAction('procMemberLogin');
|
||||
Context::addSSLAction('procMemberModifyPassword');
|
||||
Context::addSSLAction('procMemberInsert');
|
||||
Context::addSSLAction('procMemberModifyInfo');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$args = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// 기본 정보를 세팅
|
||||
$args->enable_join = 'Y';
|
||||
if(!$args->enable_openid) $args->enable_openid = 'N';
|
||||
if(!$args->enable_auth_mail) $args->enable_auth_mail = 'N';
|
||||
if(!$args->image_name) $args->image_name = 'Y';
|
||||
if(!$args->image_mark) $args->image_mark = 'Y';
|
||||
if(!$args->profile_image) $args->profile_image = 'Y';
|
||||
if(!$args->image_name_max_width) $args->image_name_max_width = '90';
|
||||
if(!$args->image_name_max_height) $args->image_name_max_height = '20';
|
||||
if(!$args->image_mark_max_width) $args->image_mark_max_width = '20';
|
||||
if(!$args->image_mark_max_height) $args->image_mark_max_height = '20';
|
||||
if(!$args->profile_image_max_width) $args->profile_image_max_width = '80';
|
||||
if(!$args->profile_image_max_height) $args->profile_image_max_height = '80';
|
||||
if($args->group_image_mark!='Y') $args->group_image_mark = 'N';
|
||||
|
||||
$oModuleController->insertModuleConfig('member',$args);
|
||||
|
||||
// 멤버 컨트롤러 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberAdminController = &getAdminController('member');
|
||||
|
||||
$groups = $oMemberModel->getGroups();
|
||||
if(!count($groups)) {
|
||||
// 관리자, 정회원, 준회원 그룹을 입력
|
||||
$group_args->title = Context::getLang('admin_group');
|
||||
$group_args->is_default = 'N';
|
||||
$group_args->is_admin = 'Y';
|
||||
$output = $oMemberAdminController->insertGroup($group_args);
|
||||
|
||||
unset($group_args);
|
||||
$group_args->title = Context::getLang('default_group_1');
|
||||
$group_args->is_default = 'Y';
|
||||
$group_args->is_admin = 'N';
|
||||
$output = $oMemberAdminController->insertGroup($group_args);
|
||||
|
||||
unset($group_args);
|
||||
$group_args->title = Context::getLang('default_group_2');
|
||||
$group_args->is_default = 'N';
|
||||
$group_args->is_admin = 'N';
|
||||
$oMemberAdminController->insertGroup($group_args);
|
||||
}
|
||||
|
||||
// 관리자 정보 세팅
|
||||
$admin_args->is_admin = 'Y';
|
||||
$output = executeQuery('member.getMemberList', $admin_args);
|
||||
if(!$output->data) {
|
||||
$admin_info = Context::gets('user_id','password','nick_name','user_name', 'email_address');
|
||||
if($admin_info->user_id) {
|
||||
// 관리자 정보 입력
|
||||
$oMemberAdminController->insertAdmin($admin_info);
|
||||
|
||||
// 로그인 처리시킴
|
||||
$output = $oMemberController->doLogin($admin_info->user_id);
|
||||
}
|
||||
}
|
||||
|
||||
// 금지 아이디 등록 (기본 + 모듈명)
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
foreach($module_list as $key => $val) {
|
||||
$oMemberAdminController->insertDeniedID($val->module,'');
|
||||
}
|
||||
$oMemberAdminController->insertDeniedID('www','');
|
||||
$oMemberAdminController->insertDeniedID('root','');
|
||||
$oMemberAdminController->insertDeniedID('administrator','');
|
||||
$oMemberAdminController->insertDeniedID('telnet','');
|
||||
$oMemberAdminController->insertDeniedID('ftp','');
|
||||
$oMemberAdminController->insertDeniedID('http','');
|
||||
|
||||
// member 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/member_extra_info/image_name');
|
||||
FileHandler::makeDir('./files/member_extra_info/image_mark');
|
||||
FileHandler::makeDir('./files/member_extra_info/profile_image');
|
||||
FileHandler::makeDir('./files/member_extra_info/signature');
|
||||
|
||||
$oDB->addIndex("member_openid_association","idx_assoc", array("server_url(255)","handle"), false);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// member 디렉토리 체크 (2007. 8. 11 추가)
|
||||
if(!is_dir("./files/member_extra_info")) return true;
|
||||
|
||||
// member 디렉토리 체크 (2007. 10. 22 추가)
|
||||
if(!is_dir("./files/member_extra_info/profile_image")) return true;
|
||||
|
||||
// member_auth_mail 테이블에 is_register 필드 추가 (2008. 04. 22)
|
||||
$act = $oDB->isColumnExists("member_auth_mail", "is_register");
|
||||
if(!$act) return true;
|
||||
|
||||
// member_group_member 테이블에 site_srl 추가 (2008. 11. 15)
|
||||
if(!$oDB->isColumnExists("member_group_member", "site_srl")) return true;
|
||||
if(!$oDB->isColumnExists("member_group", "site_srl")) return true;
|
||||
if($oDB->isIndexExists("member_group","uni_member_group_title")) return true;
|
||||
|
||||
// image_mark 추가 (2009. 02. 14)
|
||||
if(!$oDB->isColumnExists("member_group", "image_mark")) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// member 디렉토리 체크
|
||||
FileHandler::makeDir('./files/member_extra_info/image_name');
|
||||
FileHandler::makeDir('./files/member_extra_info/image_mark');
|
||||
FileHandler::makeDir('./files/member_extra_info/signature');
|
||||
FileHandler::makeDir('./files/member_extra_info/profile_image');
|
||||
|
||||
// DB 필드 추가
|
||||
if (!$oDB->isColumnExists("member_auth_mail", "is_register")) {
|
||||
$oDB->addColumn("member_auth_mail", "is_register", "char", 1, "N", true);
|
||||
}
|
||||
|
||||
// member_group_member 테이블에 site_srl 추가 (2008. 11. 15)
|
||||
if (!$oDB->isColumnExists("member_group_member", "site_srl")) {
|
||||
$oDB->addColumn("member_group_member", "site_srl", "number", 11, 0, true);
|
||||
$oDB->addIndex("member_group_member", "idx_site_srl", "site_srl", false);
|
||||
}
|
||||
if (!$oDB->isColumnExists("member_group", "site_srl")) {
|
||||
$oDB->addColumn("member_group", "site_srl", "number", 11, 0, true);
|
||||
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
|
||||
}
|
||||
if($oDB->isIndexExists("member_group","uni_member_group_title")) {
|
||||
$oDB->dropIndex("member_group","uni_member_group_title",true);
|
||||
}
|
||||
|
||||
// image_mark 추가 (2009. 02. 14)
|
||||
if(!$oDB->isColumnExists("member_group", "image_mark")) {
|
||||
$oDB->addColumn("member_group", "image_mark", "text");
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
set_include_path(_XE_PATH_."modules/member/php-openid-1.2.3");
|
||||
require_once('Auth/OpenID/XEStore.php');
|
||||
$store = new Auth_OpenID_XEStore();
|
||||
$store->reset();
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class member
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module의 high class
|
||||
**/
|
||||
class member extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
**/
|
||||
function member() {
|
||||
if(!Context::isInstalled()) return;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// SSL 사용시 회원가입/정보/비밀번호등과 관련된 action에 대해 SSL 전송하도록 지정
|
||||
if(Context::get('_use_ssl') == 'optional') {
|
||||
Context::addSSLAction('dispMemberModifyPassword');
|
||||
Context::addSSLAction('dispMemberSignUpForm');
|
||||
Context::addSSLAction('dispMemberModifyInfo');
|
||||
Context::addSSLAction('procMemberLogin');
|
||||
Context::addSSLAction('procMemberModifyPassword');
|
||||
Context::addSSLAction('procMemberInsert');
|
||||
Context::addSSLAction('procMemberModifyInfo');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$args = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// 기본 정보를 세팅
|
||||
$args->enable_join = 'Y';
|
||||
if(!$args->enable_openid) $args->enable_openid = 'N';
|
||||
if(!$args->enable_auth_mail) $args->enable_auth_mail = 'N';
|
||||
if(!$args->image_name) $args->image_name = 'Y';
|
||||
if(!$args->image_mark) $args->image_mark = 'Y';
|
||||
if(!$args->profile_image) $args->profile_image = 'Y';
|
||||
if(!$args->image_name_max_width) $args->image_name_max_width = '90';
|
||||
if(!$args->image_name_max_height) $args->image_name_max_height = '20';
|
||||
if(!$args->image_mark_max_width) $args->image_mark_max_width = '20';
|
||||
if(!$args->image_mark_max_height) $args->image_mark_max_height = '20';
|
||||
if(!$args->profile_image_max_width) $args->profile_image_max_width = '80';
|
||||
if(!$args->profile_image_max_height) $args->profile_image_max_height = '80';
|
||||
if($args->group_image_mark!='Y') $args->group_image_mark = 'N';
|
||||
|
||||
$oModuleController->insertModuleConfig('member',$args);
|
||||
|
||||
// 멤버 컨트롤러 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberAdminController = &getAdminController('member');
|
||||
|
||||
$groups = $oMemberModel->getGroups();
|
||||
if(!count($groups)) {
|
||||
// 관리자, 정회원, 준회원 그룹을 입력
|
||||
$group_args->title = Context::getLang('admin_group');
|
||||
$group_args->is_default = 'N';
|
||||
$group_args->is_admin = 'Y';
|
||||
$output = $oMemberAdminController->insertGroup($group_args);
|
||||
|
||||
unset($group_args);
|
||||
$group_args->title = Context::getLang('default_group_1');
|
||||
$group_args->is_default = 'Y';
|
||||
$group_args->is_admin = 'N';
|
||||
$output = $oMemberAdminController->insertGroup($group_args);
|
||||
|
||||
unset($group_args);
|
||||
$group_args->title = Context::getLang('default_group_2');
|
||||
$group_args->is_default = 'N';
|
||||
$group_args->is_admin = 'N';
|
||||
$oMemberAdminController->insertGroup($group_args);
|
||||
}
|
||||
|
||||
// 관리자 정보 세팅
|
||||
$admin_args->is_admin = 'Y';
|
||||
$output = executeQuery('member.getMemberList', $admin_args);
|
||||
if(!$output->data) {
|
||||
$admin_info = Context::gets('user_id','password','nick_name','user_name', 'email_address');
|
||||
if($admin_info->user_id) {
|
||||
// 관리자 정보 입력
|
||||
$oMemberAdminController->insertAdmin($admin_info);
|
||||
|
||||
// 로그인 처리시킴
|
||||
$output = $oMemberController->doLogin($admin_info->user_id);
|
||||
}
|
||||
}
|
||||
|
||||
// 금지 아이디 등록 (기본 + 모듈명)
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
foreach($module_list as $key => $val) {
|
||||
$oMemberAdminController->insertDeniedID($val->module,'');
|
||||
}
|
||||
$oMemberAdminController->insertDeniedID('www','');
|
||||
$oMemberAdminController->insertDeniedID('root','');
|
||||
$oMemberAdminController->insertDeniedID('administrator','');
|
||||
$oMemberAdminController->insertDeniedID('telnet','');
|
||||
$oMemberAdminController->insertDeniedID('ftp','');
|
||||
$oMemberAdminController->insertDeniedID('http','');
|
||||
|
||||
// member 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/member_extra_info/image_name');
|
||||
FileHandler::makeDir('./files/member_extra_info/image_mark');
|
||||
FileHandler::makeDir('./files/member_extra_info/profile_image');
|
||||
FileHandler::makeDir('./files/member_extra_info/signature');
|
||||
|
||||
$oDB->addIndex("member_openid_association","idx_assoc", array("server_url(255)","handle"), false);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// member 디렉토리 체크 (2007. 8. 11 추가)
|
||||
if(!is_dir("./files/member_extra_info")) return true;
|
||||
|
||||
// member 디렉토리 체크 (2007. 10. 22 추가)
|
||||
if(!is_dir("./files/member_extra_info/profile_image")) return true;
|
||||
|
||||
// member_auth_mail 테이블에 is_register 필드 추가 (2008. 04. 22)
|
||||
$act = $oDB->isColumnExists("member_auth_mail", "is_register");
|
||||
if(!$act) return true;
|
||||
|
||||
// member_group_member 테이블에 site_srl 추가 (2008. 11. 15)
|
||||
if(!$oDB->isColumnExists("member_group_member", "site_srl")) return true;
|
||||
if(!$oDB->isColumnExists("member_group", "site_srl")) return true;
|
||||
if($oDB->isIndexExists("member_group","uni_member_group_title")) return true;
|
||||
|
||||
// image_mark 추가 (2009. 02. 14)
|
||||
if(!$oDB->isColumnExists("member_group", "image_mark")) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// member 디렉토리 체크
|
||||
FileHandler::makeDir('./files/member_extra_info/image_name');
|
||||
FileHandler::makeDir('./files/member_extra_info/image_mark');
|
||||
FileHandler::makeDir('./files/member_extra_info/signature');
|
||||
FileHandler::makeDir('./files/member_extra_info/profile_image');
|
||||
|
||||
// DB 필드 추가
|
||||
if (!$oDB->isColumnExists("member_auth_mail", "is_register")) {
|
||||
$oDB->addColumn("member_auth_mail", "is_register", "char", 1, "N", true);
|
||||
}
|
||||
|
||||
// member_group_member 테이블에 site_srl 추가 (2008. 11. 15)
|
||||
if (!$oDB->isColumnExists("member_group_member", "site_srl")) {
|
||||
$oDB->addColumn("member_group_member", "site_srl", "number", 11, 0, true);
|
||||
$oDB->addIndex("member_group_member", "idx_site_srl", "site_srl", false);
|
||||
}
|
||||
if (!$oDB->isColumnExists("member_group", "site_srl")) {
|
||||
$oDB->addColumn("member_group", "site_srl", "number", 11, 0, true);
|
||||
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
|
||||
}
|
||||
if($oDB->isIndexExists("member_group","uni_member_group_title")) {
|
||||
$oDB->dropIndex("member_group","uni_member_group_title",true);
|
||||
}
|
||||
|
||||
// image_mark 추가 (2009. 02. 14)
|
||||
if(!$oDB->isColumnExists("member_group", "image_mark")) {
|
||||
$oDB->addColumn("member_group", "image_mark", "text");
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
set_include_path(_XE_PATH_."modules/member/php-openid-1.2.3");
|
||||
require_once('Auth/OpenID/XEStore.php');
|
||||
$store = new Auth_OpenID_XEStore();
|
||||
$store->reset();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,340 +1,340 @@
|
|||
<?php
|
||||
/**
|
||||
* @class memberView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief member module의 View class
|
||||
**/
|
||||
|
||||
class memberView extends member {
|
||||
|
||||
var $group_list = NULL; ///< 그룹 목록 정보
|
||||
var $member_info = NULL; ///< 선택된 사용자의 정보
|
||||
var $skin = 'default';
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// 회원 관리 정보를 받음
|
||||
$oModuleModel = &getModel('module');
|
||||
$this->member_config = $oModuleModel->getModuleConfig('member');
|
||||
if(!$this->member_config->skin) $this->member_config->skin = "default";
|
||||
if(!$this->member_config->colorset) $this->member_config->colorset = "white";
|
||||
|
||||
Context::set('member_config', $this->member_config);
|
||||
$skin = $this->member_config->skin;
|
||||
|
||||
// template path 지정
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
|
||||
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
|
||||
$this->setTemplatePath($tpl_path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 정보 출력
|
||||
**/
|
||||
function dispMemberInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
// 비회원일 경우 정보 열람 중지
|
||||
if(!$logged_info->member_srl) return $this->stop('msg_not_permitted');
|
||||
|
||||
$member_srl = Context::get('member_srl');
|
||||
if(!$member_srl && Context::get('is_logged')) {
|
||||
$member_srl = $logged_info->member_srl;
|
||||
} elseif(!$member_srl) {
|
||||
return $this->dispMemberSignUpForm();
|
||||
}
|
||||
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, $site_module_info->site_srl);
|
||||
unset($member_info->password);
|
||||
unset($member_info->email_id);
|
||||
unset($member_info->email_host);
|
||||
unset($member_info->email_address);
|
||||
|
||||
if(!$member_info->member_srl) return $this->dispMemberSignUpForm();
|
||||
|
||||
Context::set('member_info', $member_info);
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
if ($member_info->member_srl == $logged_info->member_srl)
|
||||
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
|
||||
|
||||
$this->setTemplateFile('member_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 출력
|
||||
**/
|
||||
function dispMemberSignUpForm() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인한 회원일 경우 해당 회원의 정보를 받음
|
||||
if($oMemberModel->isLogged()) return $this->stop('msg_already_logged');
|
||||
|
||||
// before 트리거 호출
|
||||
$trigger_output = ModuleHandler::triggerCall('member.dispMemberSignUpForm', 'before', $this->member_config);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
||||
// 회원가입을 중지시켰을 때는 에러 표시
|
||||
if($this->member_config->enable_join != 'Y') return $this->stop('msg_signup_disabled');
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
|
||||
$member_config = $oMemberModel->getMemberConfig();
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('signup_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 정보 수정
|
||||
**/
|
||||
function dispMemberModifyInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleModel = &getModel('module');
|
||||
$memberModuleConfig = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
$member_info->signature = $oMemberModel->getSignature($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 추가 가입폼 목록을 받음
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
|
||||
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
|
||||
|
||||
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
|
||||
if($member_info->member_srl) {
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'member_srl';
|
||||
$option->content_key_name = 'signature';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->disable_html = true;
|
||||
$option->height = 200;
|
||||
$option->skin = $this->member_config->editor_skin;
|
||||
$option->colorset = $this->member_config->editor_colorset;
|
||||
$editor = $oEditorModel->getEditor($member_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
}
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('modify_info');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 회원 작성글 보기
|
||||
**/
|
||||
function dispMemberOwnDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$module_srl = Context::get('module_srl');
|
||||
Context::set('module_srl',Context::get('selected_module_srl'));
|
||||
Context::set('search_target','member_srl');
|
||||
Context::set('search_keyword',$member_srl);
|
||||
|
||||
$oDocumentAdminView = &getAdminView('document');
|
||||
$oDocumentAdminView->dispDocumentAdminList();
|
||||
|
||||
Context::set('module_srl', $module_srl);
|
||||
$this->setTemplateFile('document_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 스크랩 게시물 보기
|
||||
**/
|
||||
function dispMemberScrappedDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
|
||||
$output = executeQuery('member.getScrapDocumentList', $args);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('scrapped_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원의 저장함 보기
|
||||
**/
|
||||
function dispMemberSavedDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
// 저장함에 보관된 글을 가져옴 (저장함은 module_srl이 member_srl로 세팅되어 있음)
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->module_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getDocumentList($args, true);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('saved_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그인 폼 출력
|
||||
**/
|
||||
function dispMemberLoginForm() {
|
||||
if(Context::get('is_logged')) {
|
||||
Context::set('redirect_url', getUrl('act',''));
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('redirect.html');
|
||||
return;
|
||||
}
|
||||
|
||||
// 템플릿 파일 지정
|
||||
Context::set('referer_url', $_SERVER['HTTP_REFERER']);
|
||||
$this->setTemplateFile('login_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 비밀번호 수정
|
||||
**/
|
||||
function dispMemberModifyPassword() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('modify_password');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 탈퇴 화면
|
||||
**/
|
||||
function dispMemberLeave() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 오픈 아이디 탈퇴 화면
|
||||
**/
|
||||
function dispMemberOpenIDLeave() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('openid_leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그아웃 출력
|
||||
**/
|
||||
function dispMemberLogout() {
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberController->procMemberLogout();
|
||||
|
||||
Context::set('layout','none');
|
||||
$this->setTemplatePath($this->module_path.'/tpl');
|
||||
$this->setTemplateFile('logout');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 저장된 글 목록을 보여줌
|
||||
**/
|
||||
function dispSavedDocumentList() {
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
// 저장함에 보관된 글을 가져옴 (저장함은 module_srl이 member_srl로 세팅되어 있음)
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->module_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
$args->list_count = 10;
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getDocumentList($args, true);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('saved_list_popup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 아이디/ 비밀번호 찾기 기능
|
||||
**/
|
||||
function dispMemberFindAccount() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$this->setTemplateFile('find_member_account');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 인증 메일 재발송 페이지
|
||||
**/
|
||||
function dispMemberResendAuthMail() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$this->setTemplateFile('resend_auth_mail');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class memberView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module의 View class
|
||||
**/
|
||||
|
||||
class memberView extends member {
|
||||
|
||||
var $group_list = NULL; ///< 그룹 목록 정보
|
||||
var $member_info = NULL; ///< 선택된 사용자의 정보
|
||||
var $skin = 'default';
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// 회원 관리 정보를 받음
|
||||
$oModuleModel = &getModel('module');
|
||||
$this->member_config = $oModuleModel->getModuleConfig('member');
|
||||
if(!$this->member_config->skin) $this->member_config->skin = "default";
|
||||
if(!$this->member_config->colorset) $this->member_config->colorset = "white";
|
||||
|
||||
Context::set('member_config', $this->member_config);
|
||||
$skin = $this->member_config->skin;
|
||||
|
||||
// template path 지정
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
|
||||
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
|
||||
$this->setTemplatePath($tpl_path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 정보 출력
|
||||
**/
|
||||
function dispMemberInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
// 비회원일 경우 정보 열람 중지
|
||||
if(!$logged_info->member_srl) return $this->stop('msg_not_permitted');
|
||||
|
||||
$member_srl = Context::get('member_srl');
|
||||
if(!$member_srl && Context::get('is_logged')) {
|
||||
$member_srl = $logged_info->member_srl;
|
||||
} elseif(!$member_srl) {
|
||||
return $this->dispMemberSignUpForm();
|
||||
}
|
||||
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, $site_module_info->site_srl);
|
||||
unset($member_info->password);
|
||||
unset($member_info->email_id);
|
||||
unset($member_info->email_host);
|
||||
unset($member_info->email_address);
|
||||
|
||||
if(!$member_info->member_srl) return $this->dispMemberSignUpForm();
|
||||
|
||||
Context::set('member_info', $member_info);
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
if ($member_info->member_srl == $logged_info->member_srl)
|
||||
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
|
||||
|
||||
$this->setTemplateFile('member_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 가입 폼 출력
|
||||
**/
|
||||
function dispMemberSignUpForm() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인한 회원일 경우 해당 회원의 정보를 받음
|
||||
if($oMemberModel->isLogged()) return $this->stop('msg_already_logged');
|
||||
|
||||
// before 트리거 호출
|
||||
$trigger_output = ModuleHandler::triggerCall('member.dispMemberSignUpForm', 'before', $this->member_config);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
||||
// 회원가입을 중지시켰을 때는 에러 표시
|
||||
if($this->member_config->enable_join != 'Y') return $this->stop('msg_signup_disabled');
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
|
||||
$member_config = $oMemberModel->getMemberConfig();
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('signup_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 정보 수정
|
||||
**/
|
||||
function dispMemberModifyInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleModel = &getModel('module');
|
||||
$memberModuleConfig = $oModuleModel->getModuleConfig('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
$member_info->signature = $oMemberModel->getSignature($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 추가 가입폼 목록을 받음
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
|
||||
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
|
||||
|
||||
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
|
||||
if($member_info->member_srl) {
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'member_srl';
|
||||
$option->content_key_name = 'signature';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->disable_html = true;
|
||||
$option->height = 200;
|
||||
$option->skin = $this->member_config->editor_skin;
|
||||
$option->colorset = $this->member_config->editor_colorset;
|
||||
$editor = $oEditorModel->getEditor($member_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
}
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('modify_info');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 회원 작성글 보기
|
||||
**/
|
||||
function dispMemberOwnDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$module_srl = Context::get('module_srl');
|
||||
Context::set('module_srl',Context::get('selected_module_srl'));
|
||||
Context::set('search_target','member_srl');
|
||||
Context::set('search_keyword',$member_srl);
|
||||
|
||||
$oDocumentAdminView = &getAdminView('document');
|
||||
$oDocumentAdminView->dispDocumentAdminList();
|
||||
|
||||
Context::set('module_srl', $module_srl);
|
||||
$this->setTemplateFile('document_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 스크랩 게시물 보기
|
||||
**/
|
||||
function dispMemberScrappedDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
|
||||
$output = executeQuery('member.getScrapDocumentList', $args);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('scrapped_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원의 저장함 보기
|
||||
**/
|
||||
function dispMemberSavedDocument() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
// 저장함에 보관된 글을 가져옴 (저장함은 module_srl이 member_srl로 세팅되어 있음)
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->module_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getDocumentList($args, true);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('saved_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그인 폼 출력
|
||||
**/
|
||||
function dispMemberLoginForm() {
|
||||
if(Context::get('is_logged')) {
|
||||
Context::set('redirect_url', getUrl('act',''));
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('redirect.html');
|
||||
return;
|
||||
}
|
||||
|
||||
// 템플릿 파일 지정
|
||||
Context::set('referer_url', $_SERVER['HTTP_REFERER']);
|
||||
$this->setTemplateFile('login_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 비밀번호 수정
|
||||
**/
|
||||
function dispMemberModifyPassword() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('modify_password');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 탈퇴 화면
|
||||
**/
|
||||
function dispMemberLeave() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 오픈 아이디 탈퇴 화면
|
||||
**/
|
||||
function dispMemberOpenIDLeave() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('openid_leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그아웃 출력
|
||||
**/
|
||||
function dispMemberLogout() {
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberController->procMemberLogout();
|
||||
|
||||
Context::set('layout','none');
|
||||
$this->setTemplatePath($this->module_path.'/tpl');
|
||||
$this->setTemplateFile('logout');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 저장된 글 목록을 보여줌
|
||||
**/
|
||||
function dispSavedDocumentList() {
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
// 저장함에 보관된 글을 가져옴 (저장함은 module_srl이 member_srl로 세팅되어 있음)
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->module_srl = $logged_info->member_srl;
|
||||
$args->page = (int)Context::get('page');
|
||||
$args->list_count = 10;
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getDocumentList($args, true);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$this->setTemplateFile('saved_list_popup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 아이디/ 비밀번호 찾기 기능
|
||||
**/
|
||||
function dispMemberFindAccount() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$this->setTemplateFile('find_member_account');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 인증 메일 재발송 페이지
|
||||
**/
|
||||
function dispMemberResendAuthMail() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$this->setTemplateFile('resend_auth_mail');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,77 +1,69 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">회원 기본 스킨</title>
|
||||
<title xml:lang="zh-CN">会员模块默认皮肤</title>
|
||||
<title xml:lang="jp">会員デフォルトスキン</title>
|
||||
<title xml:lang="en">Default Member Skin</title>
|
||||
<title xml:lang="vi">Giao diện thành viên mặc định</title>
|
||||
<title xml:lang="es">Por defecto miembro piel</title>
|
||||
<title xml:lang="ru">По умолчанию членом кожи</title>
|
||||
<title xml:lang="zh-TW">會員模組預設面板</title>
|
||||
<description xml:lang="ko">
|
||||
회원모듈의 default스킨
|
||||
디자인 : 서기정 (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : 정찬명 (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
会员模块的默认皮肤。
|
||||
设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
会員モジュールのデフォルトスキン
|
||||
デザイン:ソギジョン (http://blog.naver.com/addcozy)
|
||||
HTML/CSS:ジョンチャンミョン (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
default skin of member module
|
||||
Design : Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="vi">
|
||||
Giao diện mặc định của Module Thành viên
|
||||
Thiết kế: Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Por defecto de la piel miembro módulo
|
||||
Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML / CSS: Jeong Chan-Myung (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
умолчанию кожу члена модуль
|
||||
Дизайн: Ги Чен Се (http://blog.naver.com/addcozy)
|
||||
HTML / CSS: Чен-Чен Мен (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
會員模組預設面板。
|
||||
設計 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">(주)NHN</name>
|
||||
<name xml:lang="jp">(株)NHN</name>
|
||||
<name xml:lang="zh-CN">(株)NHN</name>
|
||||
<name xml:lang="en">NHN Corp</name>
|
||||
<name xml:lang="vi">NHN Corp</name>
|
||||
<name xml:lang="es">NHN Corp</name>
|
||||
<name xml:lang="ru">NHN Корп</name>
|
||||
<name xml:lang="zh-TW">NHN Corp</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="zh-CN">默认</title>
|
||||
<title xml:lang="jp">デフォルト</title>
|
||||
<title xml:lang="en">default</title>
|
||||
<title xml:lang="vi">Mặc định</title>
|
||||
<title xml:lang="es">Por defecto</title>
|
||||
<title xml:lang="ru">умолчанию</title>
|
||||
<title xml:lang="zh-TW">預設</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">회원 기본 스킨</title>
|
||||
<title xml:lang="zh-CN">会员模块默认皮肤</title>
|
||||
<title xml:lang="jp">会員デフォルトスキン</title>
|
||||
<title xml:lang="en">Default Member Skin</title>
|
||||
<title xml:lang="vi">Giao diện thành viên mặc định</title>
|
||||
<title xml:lang="es">Por defecto miembro piel</title>
|
||||
<title xml:lang="ru">По умолчанию членом кожи</title>
|
||||
<title xml:lang="zh-TW">會員模組預設面板</title>
|
||||
<description xml:lang="ko">
|
||||
회원모듈의 default스킨
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
会员模块的默认皮肤。
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
会員モジュールのデフォルトスキン
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
default skin of member module
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="vi">
|
||||
Giao diện mặc định của Module Thành viên
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Por defecto de la piel miembro módulo
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
умолчанию кожу члена модуль
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
會員模組預設面板。
|
||||
NHN (developers@xpressengine.com)
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NHN</name>
|
||||
<name xml:lang="jp">NHN</name>
|
||||
<name xml:lang="zh-CN">NHN</name>
|
||||
<name xml:lang="en">NHN</name>
|
||||
<name xml:lang="vi">NHN</name>
|
||||
<name xml:lang="es">NHN</name>
|
||||
<name xml:lang="ru">NHN</name>
|
||||
<name xml:lang="zh-TW">NHN</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="zh-CN">默认</title>
|
||||
<title xml:lang="jp">デフォルト</title>
|
||||
<title xml:lang="en">default</title>
|
||||
<title xml:lang="vi">Mặc định</title>
|
||||
<title xml:lang="es">Por defecto</title>
|
||||
<title xml:lang="ru">умолчанию</title>
|
||||
<title xml:lang="zh-TW">預設</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
|
|||
|
|
@ -1,52 +1,52 @@
|
|||
/**
|
||||
* @brief 회원 가입시나 정보 수정시 각 항목의 중복 검사등을 하는 기능을 구현
|
||||
* @author zero
|
||||
**/
|
||||
|
||||
// 입력이 시작된 것과 입력후 정해진 시간동안 내용이 변하였을 경우 서버에 ajax로 체크를 하기 위한 변수 설정
|
||||
var memberCheckObj = { target:null, value:null }
|
||||
|
||||
// domready시에 특정 필드들에 대해 이벤트를 걸어 놓음
|
||||
jQuery(document).ready(memberSetEvent);
|
||||
|
||||
function memberSetEvent() {
|
||||
jQuery('#fo_insert_member :input')
|
||||
.filter('[name=user_id],[name=nick_name],[name=email_address]')
|
||||
.blur(memberCheckValue);
|
||||
}
|
||||
|
||||
|
||||
// 실제 서버에 특정 필드의 value check를 요청하고 이상이 있으면 메세지를 뿌려주는 함수
|
||||
function memberCheckValue(event) {
|
||||
var field = event.target;
|
||||
var _name = field.name;
|
||||
var _value = field.value;
|
||||
if(!_name || !_value) return;
|
||||
|
||||
var params = {name:_name, value:_value};
|
||||
var response_tags = ['error','message'];
|
||||
|
||||
exec_xml('member','procMemberCheckValue', params, completeMemberCheckValue, response_tags, field);
|
||||
}
|
||||
|
||||
// 서버에서 응답이 올 경우 이상이 있으면 메세지를 출력
|
||||
function completeMemberCheckValue(ret_obj, response_tags, field) {
|
||||
var _id = 'dummy_check'+field.name;
|
||||
var dummy = jQuery('#'+_id);
|
||||
|
||||
if(ret_obj['message']=='success') {
|
||||
dummy.html('').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dummy.length) {
|
||||
dummy = jQuery('<div class="checkValue" />').attr('id', _id).appendTo(field.parentNode);
|
||||
}
|
||||
|
||||
dummy.html(ret_obj['message']).show();
|
||||
}
|
||||
|
||||
// 결과 메세지를 정리하는 함수
|
||||
function removeMemberCheckValueOutput(dummy, obj) {
|
||||
dummy.style.display = "none";
|
||||
}
|
||||
/**
|
||||
* @brief 회원 가입시나 정보 수정시 각 항목의 중복 검사등을 하는 기능을 구현
|
||||
* @author NHN (developer@xpressengine.com)
|
||||
**/
|
||||
|
||||
// 입력이 시작된 것과 입력후 정해진 시간동안 내용이 변하였을 경우 서버에 ajax로 체크를 하기 위한 변수 설정
|
||||
var memberCheckObj = { target:null, value:null }
|
||||
|
||||
// domready시에 특정 필드들에 대해 이벤트를 걸어 놓음
|
||||
jQuery(document).ready(memberSetEvent);
|
||||
|
||||
function memberSetEvent() {
|
||||
jQuery('#fo_insert_member :input')
|
||||
.filter('[name=user_id],[name=nick_name],[name=email_address]')
|
||||
.blur(memberCheckValue);
|
||||
}
|
||||
|
||||
|
||||
// 실제 서버에 특정 필드의 value check를 요청하고 이상이 있으면 메세지를 뿌려주는 함수
|
||||
function memberCheckValue(event) {
|
||||
var field = event.target;
|
||||
var _name = field.name;
|
||||
var _value = field.value;
|
||||
if(!_name || !_value) return;
|
||||
|
||||
var params = {name:_name, value:_value};
|
||||
var response_tags = ['error','message'];
|
||||
|
||||
exec_xml('member','procMemberCheckValue', params, completeMemberCheckValue, response_tags, field);
|
||||
}
|
||||
|
||||
// 서버에서 응답이 올 경우 이상이 있으면 메세지를 출력
|
||||
function completeMemberCheckValue(ret_obj, response_tags, field) {
|
||||
var _id = 'dummy_check'+field.name;
|
||||
var dummy = jQuery('#'+_id);
|
||||
|
||||
if(ret_obj['message']=='success') {
|
||||
dummy.html('').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dummy.length) {
|
||||
dummy = jQuery('<div class="checkValue" />').attr('id', _id).appendTo(field.parentNode);
|
||||
}
|
||||
|
||||
dummy.html(ret_obj['message']).show();
|
||||
}
|
||||
|
||||
// 결과 메세지를 정리하는 함수
|
||||
function removeMemberCheckValueOutput(dummy, obj) {
|
||||
dummy.style.display = "none";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue