From 37af2d027cbc52de5f3d4bba669bf6d7f921b22b Mon Sep 17 00:00:00 2001 From: zero Date: Mon, 9 Apr 2007 04:02:56 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1040 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/lang/ko.lang.php | 8 +++ modules/member/member.controller.php | 63 +++++++++++++++---- modules/member/queries/insertMember.xml | 2 +- modules/member/queries/updateMember.xml | 1 + modules/member/schemas/member.xml | 4 +- .../skins/default/filter/modify_info.xml | 1 + modules/member/skins/default/modify_info.html | 13 ++++ modules/member/tpl/filter/insert.xml | 1 + modules/member/tpl/insert_member.html | 13 ++++ modules/member/tpl/member_info.html | 4 ++ 10 files changed, 96 insertions(+), 14 deletions(-) diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index f14b2d7f7..f585f5f68 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -16,6 +16,13 @@ $lang->invalid_password = '잘못된 비밀번호입니다'; $lang->allow_mailing = '메일링 가입'; + $lang->allow_message = '쪽지 수신 허용'; + $lang->allow_message_type = array( + 'N' => '전체 수신', + 'Y' => '거부', + 'F' => '친구만 허용', + ); + $lang->denied = '사용중지'; $lang->is_admin = '최고관리 권한'; $lang->group = '소속 그룹'; @@ -111,6 +118,7 @@ $lang->about_blog = '운영하는 블로그가 있을 경우 입력해주세요'; $lang->about_birthday = '생년월일을 입력해주세요'; $lang->about_allow_mailing = '메일링 가입이 체크되지 않으면 단체메일 발송시 메일을 받지 않습니다'; + $lang->about_allow_message = '쪽시 수신 여부를 결정할 수 있습니다'; $lang->about_denied = '체크시 아이디를 사용할 수 없도록 합니다'; $lang->about_is_admin = '체크시 최고 관리자 권한을 가지게 됩니다'; $lang->about_description = '회원에 대한 관리자 메모입니다'; diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index a247cd546..ab82bac88 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -65,6 +65,9 @@ $receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl); if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member'); + $oDB = &DB::getInstance(); + $oDB->begin(); + // 발송하는 회원의 쪽지함에 넣을 쪽지 $sender_args->message_srl = getNextSequence(); $sender_args->related_srl = getNextSequence(); @@ -77,7 +80,10 @@ $sender_args->readed = 'N'; $sender_args->regdate = date("YmdHis"); $output = executeQuery('member.sendMessage', $sender_args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 받는 회원의 쪽지함에 넣을 쪽지 $receiver_args->message_srl = $sender_args->related_srl; @@ -91,7 +97,10 @@ $receiver_args->readed = 'N'; $receiver_args->regdate = date("YmdHis"); $output = executeQuery('member.sendMessage', $receiver_args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 받는 회원의 쪽지 발송 플래그 생성 (파일로 생성) $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl); @@ -99,6 +108,8 @@ $flag_file = sprintf('%s%s', $flag_path, $receiver_srl); FileHandler::writeFile($flag_file,'1'); + $oDB->commit(); + $this->setMessage('success_sended'); } @@ -375,7 +386,7 @@ **/ function procMemberAdminInsert() { // 필수 정보들을 미리 추출 - $args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','denied','is_admin','description','group_srl_list'); + $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(); @@ -595,7 +606,7 @@ if($config->enable_join != 'Y') return $this->stop('msg_signup_disabled'); // 필수 정보들을 미리 추출 - $args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing'); + $args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message'); $args->member_srl = getNextSequence(); // 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제 @@ -629,7 +640,7 @@ if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); // 필수 정보들을 미리 추출 - $args = Context::gets('nick_name','homepage','blog','birthday','email_address','allow_mailing'); + $args = Context::gets('nick_name','homepage','blog','birthday','email_address','allow_mailing','allow_message'); // 로그인 정보 $logged_info = Context::get('logged_info'); @@ -862,6 +873,7 @@ // 필수 변수들의 조절 if($args->allow_mailing!='Y') $args->allow_mailing = 'N'; + if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_mailing = 'Y'; if($args->denied!='Y') $args->denied = 'N'; if($args->is_admin!='Y') $args->is_admin = 'N'; list($args->email_id, $args->email_host) = explode('@', $args->email_address); @@ -886,13 +898,19 @@ $member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address); if($member_srl) return new Object(-1,'msg_exists_email_address'); + $oDB = &DB::getInstance(); + $oDB->begin(); + // DB에 입력 $args->member_srl = getNextSequence(); if($args->password) $args->password = md5($args->password); else unset($args->password); $output = executeQuery('member.insertMember', $args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 입력된 그룹 값이 없으면 기본 그룹의 값을 등록 if(!$args->group_srl_list) { @@ -900,7 +918,10 @@ // 기본 그룹에 추가 $output = $this->addMemberToGroup($args->member_srl,$default_group->group_srl); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 입력된 그룹 값이 있으면 해당 그룹의 값을 등록 } else { @@ -908,10 +929,15 @@ for($i=0;$iaddMemberToGroup($args->member_srl,$group_srl_list[$i]); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } } } + $oDB->commit(); + $output->add('member_srl', $args->member_srl); return $output; } @@ -928,6 +954,7 @@ // 필수 변수들의 조절 if($args->allow_mailing!='Y') $args->allow_mailing = 'N'; + if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_mailing = 'Y'; if(!$args->denied) unset($args->denied); if(!$args->is_admin) unset($args->is_admin); list($args->email_id, $args->email_host) = explode('@', $args->email_address); @@ -946,13 +973,19 @@ $member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address); if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_email_address'); + $oDB = &DB::getInstance(); + $oDB->begin(); + // 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; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 그룹 정보가 있으면 그룹 정보를 변경 if($args->group_srl_list) { @@ -960,15 +993,23 @@ // 일단 해당 회원의 모든 그룹 정보를 삭제 $output = executeQuery('member.deleteMemberGroupMember', $args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 하나 하나 루프를 돌면서 입력 for($i=0;$iaddMemberToGroup($args->member_srl,$group_srl_list[$i]); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } } } + $oDB->commit(); + $output->add('member_srl', $args->member_srl); return $output; } diff --git a/modules/member/queries/insertMember.xml b/modules/member/queries/insertMember.xml index 737a15c9b..c8a653320 100644 --- a/modules/member/queries/insertMember.xml +++ b/modules/member/queries/insertMember.xml @@ -15,7 +15,7 @@ - + diff --git a/modules/member/queries/updateMember.xml b/modules/member/queries/updateMember.xml index 6531a60c1..69aa53458 100644 --- a/modules/member/queries/updateMember.xml +++ b/modules/member/queries/updateMember.xml @@ -13,6 +13,7 @@ + diff --git a/modules/member/schemas/member.xml b/modules/member/schemas/member.xml index 431a4b879..a1e761772 100644 --- a/modules/member/schemas/member.xml +++ b/modules/member/schemas/member.xml @@ -10,8 +10,8 @@ - - + + diff --git a/modules/member/skins/default/filter/modify_info.xml b/modules/member/skins/default/filter/modify_info.xml index f6539d889..21b83c266 100644 --- a/modules/member/skins/default/filter/modify_info.xml +++ b/modules/member/skins/default/filter/modify_info.xml @@ -10,6 +10,7 @@ + diff --git a/modules/member/skins/default/modify_info.html b/modules/member/skins/default/modify_info.html index 867bde026..b69180d3e 100644 --- a/modules/member/skins/default/modify_info.html +++ b/modules/member/skins/default/modify_info.html @@ -111,6 +111,19 @@ {$lang->about_allow_mailing} + + {$lang->allow_message} + + + + + + {$lang->about_allow_message} + {$lang->signature} {$editor} diff --git a/modules/member/tpl/filter/insert.xml b/modules/member/tpl/filter/insert.xml index c6a27134f..664b9583d 100644 --- a/modules/member/tpl/filter/insert.xml +++ b/modules/member/tpl/filter/insert.xml @@ -17,6 +17,7 @@ + diff --git a/modules/member/tpl/insert_member.html b/modules/member/tpl/insert_member.html index 4430b5226..ea3e704c3 100644 --- a/modules/member/tpl/insert_member.html +++ b/modules/member/tpl/insert_member.html @@ -98,6 +98,19 @@ {$lang->about_allow_mailing} + + {$lang->allow_message} + + + + + + {$lang->about_allow_message} + {$lang->signature} diff --git a/modules/member/tpl/member_info.html b/modules/member/tpl/member_info.html index 0b290035e..f635512e4 100644 --- a/modules/member/tpl/member_info.html +++ b/modules/member/tpl/member_info.html @@ -80,6 +80,10 @@ {$lang->allow_mailing} {$member_info->allow_mailing} + + {$lang->allow_message} + {$lang->allow_message_type[$member_info->allow_message]} + {$lang->signature} {$member_info->signature}