diff --git a/common/js/common.js b/common/js/common.js index 9506c7051..3afa5626c 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -415,8 +415,8 @@ function chkMemberMenu(evt) { } if(!obj || !obj.className || obj.className.search("member_")==-1) return; - var member_srl = obj.className.replace(/member_([0-9]+)/,'$1'); - if(member_srl<1) return; + var member_srl = parseInt(obj.className.replace(/member_([0-9]+)/,'$1'),10); + if(!member_srl) return; // 현재 글의 mid, module를 구함 var mid = location.href.getQuery("mid"); diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 24f5df857..a2436b12e 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -290,6 +290,10 @@ * @brief 회원 가입 or 정보 수정 **/ function procMemberInsert() { + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('member'); + if($config->enable_join != 'Y') return $this->stop('msg_signup_disabled'); + // 필수 정보들을 미리 추출 $args = Context::gets('user_id','user_name','nick_name','email_address','password','allow_mailing'); $args->member_srl = getNextSequence(); @@ -311,6 +315,7 @@ if(!$output->toBool()) return $output; $this->add('member_srl', $args->member_srl); + if($config->redirect_url) $this->add('redirect_url', $config->redirect_url); $this->setMessage('success_registed'); } @@ -482,10 +487,12 @@ * @brief 서명을 파일로 저장 **/ function putSignature($member_srl, $signature) { - $filename = sprintf('files/attach/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl); + $path = sprintf('files/attach/signature/%s/', getNumberingPath($member_srl)); + $filename = sprintf('%s%d.signature.php', $path, $member_srl); if(!$signature) return @unlink($filename); $buff = sprintf('%s', $signature); + FileHandler::makeDir($path); FileHandler::writeFile($filename, $buff); } diff --git a/modules/member/member.model.php b/modules/member/member.model.php index d26560f42..46e69192f 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -472,11 +472,12 @@ * @brief 사용자의 signature를 구함 **/ function getSignature($member_srl) { - $filename = sprintf('files/attach/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl); + $filename = sprintf('files/attach/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl); if(!file_exists($filename)) return ''; $buff = FileHandler::readFile($filename); - return substr($buff, 29);29); + $signature = substr($buff, 29); + return $signature; } } ?> diff --git a/modules/member/member.view.php b/modules/member/member.view.php index ea74a58a9..fc325e132 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -243,8 +243,8 @@ Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info)); $member_info = Context::get('member_info'); - $member_info->signature = $oMemberModel->getSignature($member_srl); - Context::set('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) { diff --git a/modules/member/skins/default/filter/signup.xml b/modules/member/skins/default/filter/signup.xml index 1a2c947b2..7f2603f76 100644 --- a/modules/member/skins/default/filter/signup.xml +++ b/modules/member/skins/default/filter/signup.xml @@ -20,5 +20,6 @@ + diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js index 7cfdd3a58..c5f92e2fb 100644 --- a/modules/member/skins/default/js/member.js +++ b/modules/member/skins/default/js/member.js @@ -2,10 +2,12 @@ function completeInsert(ret_obj, response_tags, args, fo_obj) { var error = ret_obj['error']; var message = ret_obj['message']; + var redirect_url = ret_obj['redirect_url']; alert(message); - location.href = location.href.setQuery('act',''); + if(redirect_url) location.href = redirect_url; + else location.href = location.href.setQuery('act',''); } /* 정보 수정 */