git-svn-id: http://xe-core.googlecode.com/svn/trunk@1540 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-06-04 06:00:47 +00:00
parent 86e8af5b3f
commit f2e47e336d
37 changed files with 27 additions and 3019 deletions

View file

@ -388,225 +388,6 @@
return executeQuery('member.setMessageReaded', $args);
}
/**
* @brief 사용자 추가 (관리자용)
**/
function procMemberAdminInsert() {
// 필수 정보들을 미리 추출
$args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message','denied','is_admin','description','group_srl_list');
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
$all_args = Context::getRequestVars();
unset($all_args->module);
unset($all_args->act);
// 모든 request argument에서 필수 정보만 제외 한 후 추가 데이터로 입력
$extra_vars = delObjectVars($all_args, $args);
$args->extra_vars = serialize($extra_vars);
// member_srl이 넘어오면 원 회원이 있는지 확인
if($args->member_srl) {
// 멤버 모델 객체 생성
$oMemberModel = &getModel('member');
// 회원 정보 구하기
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
// 만약 원래 회원이 없으면 새로 입력하기 위한 처리
if($member_info->member_srl != $args->member_srl) unset($args->member_srl);
}
// member_srl의 값에 따라 insert/update
if(!$args->member_srl) {
$output = $this->insertMember($args);
$msg_code = 'success_registed';
} else {
$output = $this->updateMember($args);
$msg_code = 'success_updated';
}
if(!$output->toBool()) return $output;
// 서명 저장
$signature = Context::get('signature');
$this->putSignature($args->member_srl, $signature);
// 결과 리턴
$this->add('member_srl', $args->member_srl);
$this->setMessage($msg_code);
}
/**
* @brief 사용자 삭제 (관리자용)
**/
function procMemberAdminDelete() {
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
$member_srl = Context::get('member_srl');
$output = $this->deleteMember($member_srl);
if(!$output->toBool()) return $output;
$this->add('page',Context::get('page'));
$this->setMessage("success_deleted");
}
/**
* @brief 회원 관리용 기본 정보의 추가
**/
function procMemberAdminInsertConfig() {
// 기본 정보를 받음
$args = Context::gets('enable_join','limit_day','redirect_url','content','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height');
if($args->enable_join!='Y') $args->enable_join = 'N';
if($args->image_name!='Y') $args->image_name = 'N';
if($args->image_mark!='Y') $args->image_mark = 'N';
$args->limit_day = (int)$args->limit_day;
$args->agreement = $args->content;
unset($args->content);
// module Controller 객체 생성하여 입력
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('member',$args);
return $output;
}
/**
* @brief 사용자 그룹 추가
**/
function procMemberAdminInsertGroup() {
$args = Context::gets('title','description','is_default');
$output = $this->insertGroup($args);
if(!$output->toBool()) return $output;
$this->add('group_srl','');
$this->add('page',Context::get('page'));
$this->setMessage('success_registed');
}
/**
* @brief 사용자 그룹 정보 수정
**/
function procMemberAdminUpdateGroup() {
$group_srl = Context::get('group_srl');
$mode = Context::get('mode');
switch($mode) {
case 'delete' :
$output = $this->deleteGroup($group_srl);
if(!$output->toBool()) return $output;
$msg_code = 'success_deleted';
break;
case 'update' :
$args = Context::gets('group_srl','title','description','is_default');
$output = $this->updateGroup($args);
if(!$output->toBool()) return $output;
$msg_code = 'success_updated';
break;
}
$this->add('group_srl','');
$this->add('page',Context::get('page'));
$this->setMessage($msg_code);
}
/**
* @brief 가입 항목 추가
**/
function procMemberAdminInsertJoinForm() {
$args->member_join_form_srl = Context::get('member_join_form_srl');
$args->column_type = Context::get('column_type');
$args->column_name = Context::get('column_name');
$args->column_title = Context::get('column_title');
$args->default_value = explode('|@|', Context::get('default_value'));
$args->is_active = Context::get('is_active');
if(!in_array(strtoupper($args->is_active), array('Y','N'))) $args->is_active = 'N';
$args->required = Context::get('required');
if(!in_array(strtoupper($args->required), array('Y','N'))) $args->required = 'N';
$args->description = Context::get('description');
$args->list_order = getNextSequence();
// 기본값의 정리
if(in_array($args->column_type, array('checkbox','select')) && count($args->default_value) ) {
$args->default_value = serialize($args->default_value);
} else {
$args->default_value = '';
}
// member_join_form_srl이 있으면 수정, 없으면 추가
if(!$args->member_join_form_srl) $output = executeQuery('member.insertJoinForm', $args);
else $output = executeQuery('member.updateJoinForm', $args);
if(!$output->toBool()) return $output;
$this->add('act','dispJoinForm');
$this->setMessage('success_registed');
}
/**
* @brief 가입 항목의 / 이동 내용 수정
**/
function procMemberAdminUpdateJoinForm() {
$member_join_form_srl = Context::get('member_join_form_srl');
$mode = Context::get('mode');
switch($mode) {
case 'up' :
$output = $this->moveJoinFormUp($member_join_form_srl);
$msg_code = 'success_moved';
break;
case 'down' :
$output = $this->moveJoinFormDown($member_join_form_srl);
$msg_code = 'success_moved';
break;
case 'delete' :
$output = $this->deleteJoinForm($member_join_form_srl);
$msg_code = 'success_deleted';
break;
case 'update' :
break;
}
if(!$output->toBool()) return $output;
$this->setMessage($msg_code);
}
/**
* @brief 금지 아이디 추가
**/
function procMemberAdminInsertDeniedID() {
$user_id = Context::get('user_id');
$description = Context::get('description');
$oMemberController = &getController('member');
$output = $oMemberController->insertDeniedID($user_id, $description);
if(!$output->toBool()) return $output;
$this->add('group_srl','');
$this->add('page',Context::get('page'));
$this->setMessage('success_registed');
}
/**
* @brief 금지 아이디 업데이트
**/
function procMemberAdminUpdateDeniedID() {
$user_id = Context::get('user_id');
$mode = Context::get('mode');
$oMemberController = &getController('member');
switch($mode) {
case 'delete' :
$output = $oMemberController->deleteDeniedID($user_id);
if(!$output->toBool()) return $output;
$msg_code = 'success_deleted';
break;
}
$this->add('page',Context::get('page'));
$this->setMessage($msg_code);
}
/**
* @brief 회원 가입 or 정보 수정
**/
@ -843,21 +624,6 @@
@unlink($filename);
}
/**
* @brief 관리자를 추가한다
**/
function insertAdmin($args) {
// 관리자임을 설정
$args->is_admin = 'Y';
// 관리자 그룹을 구해와서 설정
$oMemberModel = &getModel('member');
$admin_group = $oMemberModel->getAdminGroup();
$args->group_srl_list = $admin_group->group_srl;
return $this->insertMember($args);
}
/**
* @brief 로그인 시킴
**/
@ -1118,199 +884,6 @@
return executeQuery('member.deleteMember', $args);
}
/**
* @brief member_srl에 group_srl을 추가
**/
function addMemberToGroup($member_srl,$group_srl) {
$args->member_srl = $member_srl;
$args->group_srl = $group_srl;
// 추가
return executeQuery('member.addMemberToGroup',$args);
}
/**
* @brief 회원의 그룹값을 변경
**/
function changeGroup($source_group_srl, $target_group_srl) {
$args->source_group_srl = $source_group_srl;
$args->target_group_srl = $target_group_srl;
return executeQuery('member.changeGroup', $args);
}
/**
* @brief 그룹 등록
**/
function insertGroup($args) {
// is_default값을 체크, Y일 경우 일단 모든 is_default에 대해서 N 처리
if($args->is_default!='Y') {
$args->is_default = 'N';
} else {
$output = executeQuery('member.updateGroupDefaultClear');
if(!$output->toBool()) return $output;
}
return executeQuery('member.insertGroup', $args);
}
/**
* @brief 그룹 정보 수정
**/
function updateGroup($args) {
// is_default값을 체크, Y일 경우 일단 모든 is_default에 대해서 N 처리
if($args->is_default!='Y') $args->is_default = 'N';
else {
$output = executeQuery('member.updateGroupDefaultClear');
if(!$output->toBool()) return $output;
}
return executeQuery('member.updateGroup', $args);
}
/**
* 그룹 삭제
**/
function deleteGroup($group_srl) {
// 멤버모델 객체 생성
$oMemberModel = &getModel('member');
// 삭제 대상 그룹을 가져와서 체크 (is_default == 'Y'일 경우 삭제 불가)
$group_info = $oMemberModel->getGroup($group_srl);
if(!$group_info) return new Object(-1, 'lang->msg_not_founded');
if($group_info->is_default == 'Y') return new Object(-1, 'msg_not_delete_default');
// is_default == 'Y'인 그룹을 가져옴
$default_group = $oMemberModel->getDefaultGroup();
$default_group_srl = $default_group->group_srl;
// default_group_srl로 변경
$this->changeGroup($group_srl, $default_group_srl);
$args->group_srl = $group_srl;
return executeQuery('member.deleteGroup', $args);
}
/**
* @brief 금지아이디 등록
**/
function insertDeniedID($user_id, $desription = '') {
$args->user_id = $user_id;
$args->description = $description;
$args->list_order = -1*getNextSequence();
return executeQuery('member.insertDeniedID', $args);
}
/**
* @brief 금지아이디 삭제
**/
function deleteDeniedID($user_id) {
$args->user_id = $user_id;
return executeQuery('member.deleteDeniedID', $args);
}
/**
* @brief 가입폼 항목을 삭제
**/
function deleteJoinForm($member_join_form_srl) {
$args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.deleteJoinForm', $args);
return $output;
}
/**
* @brief 가입항목을 상단으로 이동
**/
function moveJoinFormUp($member_join_form_srl) {
$oMemberModel = &getModel('member');
// 선택된 가입항목의 정보를 구한다
$args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.getJoinForm', $args);
$join_form = $output->data;
$list_order = $join_form->list_order;
// 전체 가입항목 목록을 구한다
$join_form_list = $oMemberModel->getJoinFormList();
$join_form_srl_list = array_keys($join_form_list);
if(count($join_form_srl_list)<2) return new Object();
$prev_member_join_form = NULL;
foreach($join_form_list as $key => $val) {
if($val->member_join_form_srl == $member_join_form_srl) break;
$prev_member_join_form = $val;
}
// 이전 가입항목가 없으면 그냥 return
if(!$prev_member_join_form) return new Object();
// 선택한 가입항목의 정보
$cur_args->member_join_form_srl = $member_join_form_srl;
$cur_args->list_order = $prev_member_join_form->list_order;
// 대상 가입항목의 정보
$prev_args->member_join_form_srl = $prev_member_join_form->member_join_form_srl;
$prev_args->list_order = $list_order;
// DB 처리
$output = executeQuery('member.updateMemberJoinFormListorder', $cur_args);
if(!$output->toBool()) return $output;
executeQuery('member.updateMemberJoinFormListorder', $prev_args);
if(!$output->toBool()) return $output;
return new Object();
}
/**
* @brief 가입항목을 하단으로 이동
**/
function moveJoinFormDown($member_join_form_srl) {
$oMemberModel = &getModel('member');
// 선택된 가입항목의 정보를 구한다
$args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.getJoinForm', $args);
$join_form = $output->data;
$list_order = $join_form->list_order;
// 전체 가입항목 목록을 구한다
$join_form_list = $oMemberModel->getJoinFormList();
$join_form_srl_list = array_keys($join_form_list);
if(count($join_form_srl_list)<2) return new Object();
for($i=0;$i<count($join_form_srl_list);$i++) {
if($join_form_srl_list[$i]==$member_join_form_srl) break;
}
$next_member_join_form_srl = $join_form_srl_list[$i+1];
// 이전 가입항목가 없으면 그냥 return
if(!$next_member_join_form_srl) return new Object();
$next_member_join_form = $join_form_list[$next_member_join_form_srl];
// 선택한 가입항목의 정보
$cur_args->member_join_form_srl = $member_join_form_srl;
$cur_args->list_order = $next_member_join_form->list_order;
// 대상 가입항목의 정보
$next_args->member_join_form_srl = $next_member_join_form->member_join_form_srl;
$next_args->list_order = $list_order;
// DB 처리
$output = executeQuery('member.updateMemberJoinFormListorder', $cur_args);
if(!$output->toBool()) return $output;
$output = executeQuery('member.updateMemberJoinFormListorder', $next_args);
if(!$output->toBool()) return $output;
return new Object();
}
/**
* @brief 최종 출력물에서 이미지 이름을 변경
* member_extra_info 애드온에서 요청이
@ -1401,6 +974,5 @@
}
return sprintf('%08x%08x', $nr, $nr2);
}
}
?>

View file

@ -196,61 +196,6 @@
return $logged_info->user_id;
}
/**
* @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 = $search_keyword;
break;
case 'last_login' :
$args->s_last_login = $search_keyword;
break;
}
}
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
if($args->selected_group_srl) {
$query_id = 'member.getMemberListWithinGroup';
$args->sort_index = "member.member_srl";
} else {
$query_id = 'member.getMemberList';
$args->sort_index = "member_srl";
}
// 기타 변수들 정리
$args->page = Context::get('page');
$args->list_count = 40;
$args->page_count = 10;
return executeQuery($query_id, $args);
}
/**
* @brief member_srl이 속한 group 목록을 가져옴
**/

View file

@ -15,31 +15,6 @@
* @brief 초기화
**/
function init() {
// 관리자 모듈에서 요청중이면 initAdmin(), 아니면 initNormal()
if(Context::get('module')=='admin') $this->initAdmin();
}
/**
* @brief 관리자 페이지의 초기화
**/
function initAdmin() {
// 멤버모델 객체 생성
$oMemberModel = &getModel('member');
// member_srl이 있으면 미리 체크하여 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);
}
// group 목록 가져오기
$this->group_list = $oMemberModel->getGroups();
Context::set('group_list', $this->group_list);
// template path 지정
$this->setTemplatePath($this->module_path.'tpl');
}
/**
@ -364,155 +339,5 @@
$this->setTemplateFile('add_friend_group');
}
/**
* @brief 회원 목록 출력
**/
function dispMemberAdminList() {
// member model 객체 생성후 목록을 구해옴
$oMemberModel = &getModel('member');
$output = $oMemberModel->getMemberList();
// 템플릿에 쓰기 위해서 context::set
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 회원 관리에 필요한 기본 설정들
**/
function dispMemberAdminConfig() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if(!$config->image_name_max_width) $config->image_name_max_width = 90;
if(!$config->image_name_max_height) $config->image_name_max_height = 20;
if(!$config->image_mark_max_width) $config->image_mark_max_width = 20;
if(!$config->image_mark_max_height) $config->image_mark_max_height = 20;
Context::set('config',$config);
// 회원 관리 모듈의 스킨 목록을 구함
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list', $skin_list);
// 에디터를 받음
$oEditorModel = &getModel('editor');
$editor = $oEditorModel->getEditor(0, false, true);
Context::set('editor', $editor);
// 템플릿 파일 지정
$this->setTemplateFile('member_config');
}
/**
* @brief 회원 정보 출력
**/
function dispMemberAdminInfo() {
// 추가 가입폼 목록을 받음
$oMemberModel = &getModel('member');
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
$this->setTemplateFile('member_info');
}
/**
* @brief 회원 정보 입력 화면 출력
**/
function dispMemberAdminInsert() {
// 추가 가입폼 목록을 받음
$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);
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
if($this->member_info->member_srl) {
$oEditorModel = &getModel('editor');
$editor = $oEditorModel->getEditor($this->member_info->member_srl, false, false);
Context::set('editor', $editor);
}
// 템플릿 파일 지정
$this->setTemplateFile('insert_member');
}
/**
* @brief 회원 삭제 화면 출력
**/
function dispMemberAdminDeleteForm() {
if(!Context::get('member_srl')) return $this->dispContent();
$this->setTemplateFile('delete_form');
}
/**
* @brief 그룹 목록 출력
**/
function dispMemberAdminGroupList() {
$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');
}
}
?>