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