diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 62a2127ef..75c99afaa 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -104,6 +104,7 @@ $lang->date = '날짜'; $lang->regdate = '등록일'; $lang->last_update = '최근수정일'; + $lang->signup_date = '가입일'; $lang->last_login = '최근로그인'; $lang->first_page = '첫페이지'; $lang->last_page = '끝페이지'; diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index 318b87636..ae1105c9a 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -4,6 +4,7 @@ + @@ -23,6 +24,8 @@ + + diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 60ba5fe92..d8cd39318 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -16,6 +16,7 @@ $oModuleController->insertActionForward('member', 'view', 'dispMemberInfo'); $oModuleController->insertActionForward('member', 'view', 'dispMemberSignUpForm'); $oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo'); + $oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword'); $oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm'); $oModuleController->insertActionForward('member', 'view', 'dispMemberLogout'); $oModuleController->insertActionForward('member', 'view', 'dispMemberAdminList'); @@ -31,6 +32,8 @@ $oModuleController->insertActionForward('member', 'controller', 'procMemberLogin'); $oModuleController->insertActionForward('member', 'controller', 'procMemberLogout'); $oModuleController->insertActionForward('member', 'controller', 'procMemberInsert'); + $oModuleController->insertActionForward('member', 'controller', 'procMemberModifyInfo'); + $oModuleController->insertActionForward('member', 'controller', 'procMemberModifyPassword'); $oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageName'); $oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageMark'); $oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteImageName'); diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 65fa79997..2b2911e4d 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -286,7 +286,8 @@ **/ function procMemberInsert() { // 필수 정보들을 미리 추출 - $args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','signature'); + $args = Context::gets('user_id','user_name','nick_name','email_address','password','allow_mailing','signature'); + $args->member_srl = getNextSequence(); // 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제 $all_args = Context::getRequestVars(); @@ -300,31 +301,51 @@ $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'; - } - + $output = $this->insertMember($args); if(!$output->toBool()) return $output; $this->add('member_srl', $args->member_srl); - $this->setMessage($msg_code); + $this->setMessage('success_registed'); + } + + /** + * @brief 회원 가입 or 정보 수정 + **/ + function procMemberModifyInfo() { + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); + + // 필수 정보들을 미리 추출 + $args = Context::gets('nick_name','email_address','allow_mailing','signature'); + + // 로그인 정보 + $logged_info = Context::get('logged_info'); + $args->member_srl = $logged_info->member_srl; + + // 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제 + $all_args = Context::getRequestVars(); + unset($all_args->module); + unset($all_args->act); + unset($all_args->is_admin); + unset($all_args->description); + unset($all_args->group_srl_list); + + // 모든 request argument에서 필수 정보만 제외 한 후 추가 데이터로 입력 + $extra_vars = delObjectVars($all_args, $args); + $args->extra_vars = serialize($extra_vars); + + // 멤버 모델 객체 생성 + $oMemberModel = &getModel('member'); + + // 회원 정보 구하기 + $member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); + + // member_srl의 값에 따라 insert/update + $output = $this->updateMember($args); + if(!$output->toBool()) return $output; + + $this->add('member_srl', $args->member_srl); + $this->setMessage('success_updated'); } @@ -517,6 +538,7 @@ if(!$args->is_admin) unset($args->is_admin); list($args->email_id, $args->email_host) = explode('@', $args->email_address); + // 아이디, 닉네임, email address 의 중복 체크 $member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id); if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_user_id'); @@ -530,6 +552,7 @@ // DB에 update if($args->password) $args->password = md5($args->password); else $args->password = $member_info->password; + if(!$args->user_name) $args->user_name = $member_info->user_name; $output = executeQuery('member.updateMember', $args); if(!$output->toBool()) return $output; diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 958933ae0..6917ec50d 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -121,6 +121,7 @@ $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; + $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); Context::set('member_info',$member_info); diff --git a/modules/member/skins/default/filter/modify_info.xml b/modules/member/skins/default/filter/modify_info.xml new file mode 100644 index 000000000..86701454d --- /dev/null +++ b/modules/member/skins/default/filter/modify_info.xml @@ -0,0 +1,16 @@ + +
+ + + + + + + + + + + + + +
diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js index 7da143824..73b8457a1 100644 --- a/modules/member/skins/default/js/member.js +++ b/modules/member/skins/default/js/member.js @@ -8,6 +8,16 @@ function completeInsert(ret_obj, response_tags, args, fo_obj) { location.href = location.href.setQuery('act',''); } +/* 정보 수정 */ +function completeModify(ret_obj, response_tags, args, fo_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + + alert(message); + + location.href = location.href.setQuery('act','dispMemberInfo'); +} + /* 로그인 후 */ function completeLogin(ret_obj) { var url = location.href.setQuery('act',''); diff --git a/modules/member/skins/default/member_info.html b/modules/member/skins/default/member_info.html index 3cc7ebc5f..feee24ea6 100644 --- a/modules/member/skins/default/member_info.html +++ b/modules/member/skins/default/member_info.html @@ -2,7 +2,12 @@ - + @@ -51,12 +56,23 @@ + + + + + + + + + + + diff --git a/modules/member/skins/default/modify_info.html b/modules/member/skins/default/modify_info.html new file mode 100644 index 000000000..b34e85618 --- /dev/null +++ b/modules/member/skins/default/modify_info.html @@ -0,0 +1,157 @@ + + + +
+ + {$lang->msg_new_member} + + {$lang->msg_update_member} + +
+ + + + + + +
+ {$lang->member_default_info} +
+
{$lang->user_id}{$member_info->user_id} + {$member_info->user_id} + + ({$lang->denied}) + +
{$lang->user_name}
{$lang->signup_date}{zdate($member_info->regdate,"Y-m-d H:i")}
{$lang->last_login}{zdate($member_info->last_login,"Y-m-d H:i")}
- +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
{$lang->user_id} + {$member_info->user_id} +
{$lang->user_name} + {$member_info->user_name} +
{$lang->nick_name} + +
{$lang->about_nick_name}
{$lang->email_address} + +
{$lang->allow_mailing}allow_mailing!='N')-->checked="true"/>
{$lang->about_allow_mailing}
+ + +
+ {$lang->member_extend_info} +
+ + + + + + + + + + + + + +
+ + * + + {$val->column_title} + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + value)&&in_array($v, $val->value))-->checked="true"/>{$v} + + + + + + + + + +
+ + +
+ +
+ + +
+ +
+ +
+ + + + + + + +
{$val->description}
+ + + + + + +
+ + +
+ diff --git a/modules/member/skins/default/signup_form.html b/modules/member/skins/default/signup_form.html index 8cf3d0c71..ff3ce296f 100644 --- a/modules/member/skins/default/signup_form.html +++ b/modules/member/skins/default/signup_form.html @@ -2,21 +2,13 @@
- - {$lang->msg_new_member} - - {$lang->msg_update_member} - + {$lang->msg_new_member}
- - - -
@@ -41,11 +33,7 @@ {$lang->user_id} - - {$member_info->user_id} - - @@ -91,7 +79,7 @@ {$lang->allow_mailing} - allow_mailing!='N')-->checked="true"/> + {$lang->about_allow_mailing} diff --git a/plugins/login_info/skins/default/login_info.html b/plugins/login_info/skins/default/login_info.html index 37df01c4d..08d847624 100644 --- a/plugins/login_info/skins/default/login_info.html +++ b/plugins/login_info/skins/default/login_info.html @@ -22,7 +22,7 @@