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