From 97cc64a9dce139c1bc0d3a185d20536ba4d5c361 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 3 Apr 2007 07:23:11 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@928 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../member_extra_info.addon.php | 4 +- common/lang/ko.lang.php | 1 + modules/member/lang/ko.lang.php | 1 + modules/member/member.controller.php | 183 ++++++++++++++++++ modules/member/member.model.php | 10 + modules/member/member.view.php | 30 +++ modules/member/queries/addFriendGroup.xml | 11 ++ modules/member/queries/addFriends.xml | 13 ++ modules/member/queries/deleteFriendGroup.xml | 9 + modules/member/queries/deleteFriends.xml | 9 + modules/member/queries/deleteMessage.xml | 8 + modules/member/queries/getMessage.xml | 11 ++ modules/member/queries/renameFriendGroup.xml | 12 ++ modules/member/queries/sendMessage.xml | 14 ++ modules/member/queries/setMessageReaded.xml | 13 ++ modules/member/schemas/member_friends.xml | 5 +- .../member/schemas/member_friends_group.xml | 2 +- modules/member/schemas/member_message.xml | 5 +- 18 files changed, 334 insertions(+), 7 deletions(-) create mode 100644 modules/member/queries/addFriendGroup.xml create mode 100644 modules/member/queries/addFriends.xml create mode 100644 modules/member/queries/deleteFriendGroup.xml create mode 100644 modules/member/queries/deleteFriends.xml create mode 100644 modules/member/queries/deleteMessage.xml create mode 100644 modules/member/queries/getMessage.xml create mode 100644 modules/member/queries/renameFriendGroup.xml create mode 100644 modules/member/queries/sendMessage.xml create mode 100644 modules/member/queries/setMessageReaded.xml diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php index 1d6a4308f..7a63c0e28 100644 --- a/addons/member_extra_info/member_extra_info.addon.php +++ b/addons/member_extra_info/member_extra_info.addon.php @@ -55,7 +55,7 @@ // 4. 자신의 쪽지함 보기 기능 추가 $menu_str = Context::getLang('cmd_view_message_box'); - $menu_link = sprintf('./?module=member&act=dispMemberMessage&target_member_srl=%s',$member_srl); + $menu_link = sprintf('./?module=member&act=dispMemberMessage&receiver_srl=%s',$member_srl); // 메뉴에 새로 만든 쪽지 발송 메뉴를 추가 $menu_list .= sprintf("\n%s,move_url('%s','sendMessage', true)", $menu_str, $menu_link); @@ -65,7 +65,7 @@ } else { // 4. 쪽지 발송 메뉴를 만듬 $menu_str = Context::getLang('cmd_send_message'); - $menu_link = sprintf('./?module=member&act=dispMemberSendMessage&target_member_srl=%s',$member_srl); + $menu_link = sprintf('./?module=member&act=dispMemberSendMessage&receiver_srl=%s',$member_srl); // 메뉴에 새로 만든 쪽지 발송 메뉴를 추가 $menu_list .= sprintf("\n%s,popopen('%s','sendMessage')", $menu_str, $menu_link); diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index c89b9aa4c..cb30fdbed 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -153,6 +153,7 @@ $lang->success_deleted = '삭제되었습니다'; $lang->success_voted = '추천되었습니다'; $lang->success_moved = '이동되었습니다'; + $lang->success_sended = '발송되었습니다'; $lang->failed_voted = '추천하실 수 없습니다'; $lang->fail_to_delete_have_children = '답글이 있어서 삭제할 수 없습니다'; diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index 309cb009f..d11493b66 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -74,6 +74,7 @@ $lang->msg_signup_disabled = '회원 가입을 하실 수 없습니다'; $lang->msg_already_logged = '이미 회원 가입을 하신 상태입니다'; $lang->msg_not_logged = '로그인을 하지 않으셨습니다'; + $lang->msg_content_is_null = '내용을 입력해주세요'; $lang->msg_not_uploaded_image_name = '이미지 이름을 등록할 수가 없습니다'; $lang->msg_not_uploaded_image_mark = '이미지 마크를 등록할 수가 없습니다'; diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 4bd145eba..3c1f4b570 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -44,6 +44,189 @@ return new Object(); } + /** + * @brief 쪽지 발송 + **/ + function procMemberSendMessage() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 검사 + $receiver_srl = Context::get('receiver_srl'); + if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member'); + $content = trim(Context::get('content')); + if(!$content) return new Object(-1, 'msg_content_is_null'); + + // 받을 회원이 있는지에 대한 검사 + $oMemberModel = &getModel('member'); + $receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl); + if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member'); + + // 발송하는 회원의 쪽지함에 넣을 쪽지 + $sender_args->message_srl = getNextSequence(); + $sender_args->related_srl = 0; + $sender_args->list_order = getNextSequence()*-1; + $sender_args->sender_srl = $logged_info->member_srl; + $sender_args->receiver_srl = $receiver_srl; + $sender_args->message_type = 'S'; + $sender_args->content = $content; + $sender_args->readed = 'N'; + $sender_args->regdate = date("YmdHis"); + $output = executeQuery('member.sendMessage', $sender_args); + if(!$output->toBool()) return $output; + + // 받는 회원의 쪽지함에 넣을 쪽지 + $receiver_args->message_srl = getNextSequence(); + $receiver_args->related_srl = $sender_args->message_srl; + $receiver_args->list_order = getNextSequence()*-1; + $receiver_args->sender_srl = $logged_info->member_srl; + $receiver_args->receiver_srl = $receiver_srl; + $receiver_args->message_type = 'R'; + $receiver_args->content = $content; + $receiver_args->readed = 'N'; + $receiver_args->regdate = date("YmdHis"); + $output = executeQuery('member.sendMessage', $receiver_args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_sended'); + } + + /** + * @brief 쪽지 삭제 + **/ + function procMemberDeleteMessage() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + $member_srl = $logged_info->member_srl; + + // 변수 체크 + $message_srl = Context::get('message_srl'); + if(!$message_srl) return new Object(-1,'msg_invalid_request'); + + // 쪽지를 가져옴 + $oMemberModel = &getModel('member'); + $message = $oMemberModel->getMessage($message_srl); + if(!$message) return new Object(-1,'msg_invalid_request'); + + // 발송인+type=S or 수신인+type=R 검사 + if($message->sender_srl == $member_srl && $message->message_type == 'S') { + $args->message_srl = $message_srl; + } elseif($message->receiver_srl == $member_srl && $message->message_type == 'R') { + $args->message_srl = $message_srl; + } + if(!$args->message_srl) return new Object(-1, 'msg_invalid_request'); + + // 삭제 + $output = executeQuery('member.deleteMessage', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_deleted'); + } + + /** + * @brief 친구 추가 + **/ + function procMemberAddFriend() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 정리 + $args->friends_srl = getNextSequence(); + $args->list_order = $args->friends_srl * -1; + $args->friends_group_srl = Context::get('friends_group_srl'); + $args->member_srl = $logged_info->member_srl; + $args->target_srl = Context::get('target_srl'); + $output = executeQuery('member.addFriends', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_registed'); + } + + /** + * @brief 친구 삭제 + **/ + function procMemberDeleteFriend() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 정리 + $args->friends_srl = Context::get('friends_srl'); + $args->member_srl = $logged_info->member_srl; + $output = executeQuery('member.deleteFriends', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_deleted'); + } + + /** + * @brief 친구 그룹 추가 + **/ + function procMemberAddFriendGroup() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 정리 + $args->member_srl = $logged_info->member_srl; + $args->title = Context::get('title'); + if(!$args->title) return new Object(-1, 'msg_invalid_request'); + + $output = executeQuery('member.addFriendGroup', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_registed'); + } + + /** + * @brief 친구 그룹 이름 변경 + **/ + function procMemberRenameFriendGroup() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 정리 + $args->friends_group_srl= Context::get('friends_group_srl'); + $args->member_srl = $logged_info->member_srl; + $args->title = Context::get('title'); + if(!$args->title) return new Object(-1, 'msg_invalid_request'); + + $output = executeQuery('member.renameFriendGroup', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_updated'); + } + + /** + * @brief 친구 그룹 삭제 + **/ + function procMemberDeleteFriendGroup() { + // 로그인 정보 체크 + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); + $logged_info = Context::get('logged_info'); + + // 변수 정리 + $args->friends_group_srl = Context::get('friends_group_srl'); + $args->member_srl = $logged_info->member_srl; + $output = executeQuery('member.deleteFriendGroup', $args); + if(!$output->toBool()) return $output; + + $this->setMessage('success_deleted'); + } + + /** + * @brief 특정 쪽지의 상태를 읽은 상태로 변경 + **/ + function setMessageReaded($message_srl) { + $args->message_srl = $message_srl; + $args->related_srl = $message_srl; + return executeQuery('member.setMessageReaded', $args); + } + /** * @brief 사용자 추가 (관리자용) **/ diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 5394596cf..8ab18c26a 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -114,6 +114,7 @@ * @brief member_srl로 사용자 정보 return **/ function getMemberInfoByMemberSrl($member_srl) { + if(!$member_srl) return; if(!$this->member_info[$member_srl]) { $args->member_srl = $member_srl; $output = executeQuery('member.getMemberInfoByMemberSrl', $args); @@ -478,5 +479,14 @@ $signature = substr($buff, 40); return $signature; } + + /** + * @brief 쪽지 내용을 가져옴 + **/ + function getMessage($message_srl) { + $args->message_srl = $message_srl; + $output = executeQuery('member.getMessage',$args); + return $output->data; + } } ?> diff --git a/modules/member/member.view.php b/modules/member/member.view.php index fc325e132..d813b9084 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -182,6 +182,36 @@ $this->setTemplateFile('logout'); } + /** + * @brief 쪽지함 출력 + **/ + function dispMemberMessage() { + } + + /** + * @brief 쪽지 발송 출력 + **/ + function dispMemberSendMessage() { + } + + /** + * @brief 친구 목록 보기 + **/ + function dispMemberFriends() { + } + + /** + * @brief 친구 추가 + **/ + function dispMemberAddFriend() { + } + + /** + * @brief 친구 그룹 추가 + **/ + function dispMemberFriendGroup() { + } + /** * @brief 회원 목록 출력 **/ diff --git a/modules/member/queries/addFriendGroup.xml b/modules/member/queries/addFriendGroup.xml new file mode 100644 index 000000000..c547d2998 --- /dev/null +++ b/modules/member/queries/addFriendGroup.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/member/queries/addFriends.xml b/modules/member/queries/addFriends.xml new file mode 100644 index 000000000..7807d9433 --- /dev/null +++ b/modules/member/queries/addFriends.xml @@ -0,0 +1,13 @@ + + +
+ + + + + + + + + + diff --git a/modules/member/queries/deleteFriendGroup.xml b/modules/member/queries/deleteFriendGroup.xml new file mode 100644 index 000000000..f25c631c4 --- /dev/null +++ b/modules/member/queries/deleteFriendGroup.xml @@ -0,0 +1,9 @@ + + +
+ + + + + + diff --git a/modules/member/queries/deleteFriends.xml b/modules/member/queries/deleteFriends.xml new file mode 100644 index 000000000..c77b09668 --- /dev/null +++ b/modules/member/queries/deleteFriends.xml @@ -0,0 +1,9 @@ + + +
+ + + + + + diff --git a/modules/member/queries/deleteMessage.xml b/modules/member/queries/deleteMessage.xml new file mode 100644 index 000000000..c579eb3ec --- /dev/null +++ b/modules/member/queries/deleteMessage.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/member/queries/getMessage.xml b/modules/member/queries/getMessage.xml new file mode 100644 index 000000000..96aecf8dc --- /dev/null +++ b/modules/member/queries/getMessage.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/member/queries/renameFriendGroup.xml b/modules/member/queries/renameFriendGroup.xml new file mode 100644 index 000000000..4e8b1dd2d --- /dev/null +++ b/modules/member/queries/renameFriendGroup.xml @@ -0,0 +1,12 @@ + + +
+ + + + + + + + + diff --git a/modules/member/queries/sendMessage.xml b/modules/member/queries/sendMessage.xml new file mode 100644 index 000000000..97105c446 --- /dev/null +++ b/modules/member/queries/sendMessage.xml @@ -0,0 +1,14 @@ + + +
+ + + + + + + + + + + diff --git a/modules/member/queries/setMessageReaded.xml b/modules/member/queries/setMessageReaded.xml new file mode 100644 index 000000000..a55a91eba --- /dev/null +++ b/modules/member/queries/setMessageReaded.xml @@ -0,0 +1,13 @@ + + +
+ + + + + + + + + + diff --git a/modules/member/schemas/member_friends.xml b/modules/member/schemas/member_friends.xml index c0199276f..98b399e0b 100644 --- a/modules/member/schemas/member_friends.xml +++ b/modules/member/schemas/member_friends.xml @@ -1,7 +1,8 @@
- - + + +
diff --git a/modules/member/schemas/member_friends_group.xml b/modules/member/schemas/member_friends_group.xml index 125ee6d30..7b2004f64 100644 --- a/modules/member/schemas/member_friends_group.xml +++ b/modules/member/schemas/member_friends_group.xml @@ -1,6 +1,6 @@ - +
diff --git a/modules/member/schemas/member_message.xml b/modules/member/schemas/member_message.xml index 494e81cf3..3648cff80 100644 --- a/modules/member/schemas/member_message.xml +++ b/modules/member/schemas/member_message.xml @@ -1,11 +1,12 @@ - + - + +