diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php
index 7a63c0e28..580e74d7d 100644
--- a/addons/member_extra_info/member_extra_info.addon.php
+++ b/addons/member_extra_info/member_extra_info.addon.php
@@ -75,7 +75,7 @@
$menu_link = sprintf('./?module=member&act=dispMemberAddFriend&target_member_srl=%s',$member_srl);
// 메뉴에 새로 만든 친구 등록 메뉴 추가
- $menu_list .= sprintf("\n%s,popopen('%s','sendMessage')", $menu_str, $menu_link);
+ $menu_list .= sprintf("\n%s,popopen('%s','addFriend')", $menu_str, $menu_link);
}
// 템플릿에 적용되게 하기 위해 module의 variables에 재등록
diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php
index 91a83a9dd..8828ff62b 100644
--- a/classes/display/DisplayHandler.class.php
+++ b/classes/display/DisplayHandler.class.php
@@ -54,10 +54,10 @@
// 컨텐츠 출력
if(Context::getResponseMethod()!="XMLRPC") {
- ini_set('zlib.output_compression_level',3);
- ob_start('ob_gzhandler');
+ //ini_set('zlib.output_compression_level',3);
+ //ob_start('ob_gzhandler');
print trim($output);
- ob_end_flush();
+ //ob_end_flush();
} else {
print trim($output);
}
diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php
index d11493b66..954446ba0 100644
--- a/modules/member/lang/ko.lang.php
+++ b/modules/member/lang/ko.lang.php
@@ -5,26 +5,6 @@
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
- $lang->cmd_login = '로그인';
- $lang->cmd_logout = '로그아웃';
- $lang->cmd_signup = '가입';
- $lang->cmd_modify_member_info = '회원정보 수정';
- $lang->cmd_modify_member_password = '비밀번호 변경';
- $lang->cmd_view_member_info = '회원정보 보기';
- $lang->cmd_leave = '탈퇴';
-
- $lang->cmd_member_list = '회원 목록';
- $lang->cmd_module_config = '기본 설정';
- $lang->cmd_member_group = '그룹 관리';
- $lang->cmd_send_mail = '메일발송';
- $lang->cmd_manage_id = '금지아이디관리';
- $lang->cmd_manage_form = '가입폼관리';
- $lang->cmd_view_own_document = '작성글 보기';
- $lang->cmd_send_email = '메일 보내기';
- $lang->cmd_send_message = '쪽지 보내기';
- $lang->cmd_add_friend = '친구 등록';
- $lang->cmd_view_message_box = '쪽지함 보기';
-
$lang->member_default_info = '기본 정보';
$lang->member_extend_info = '추가 정보';
@@ -52,6 +32,8 @@
$lang->redirect_url = '회원 가입후 이동할 페이지';
$lang->agreement = '회원 가입 약관';
$lang->accept_agreement = '약관동의';
+ $lang->sender = '보낸이';
+ $lang->receiver = '받는이';
$lang->search_target_list = array(
'user_id' => '아이디',
@@ -62,6 +44,35 @@
'last_login' => '최근로그인일시',
);
+ $lang->message_box = array(
+ 'R' => '받은 쪽지함',
+ 'S' => '보낸 쪽지함',
+ 'T' => '보관함',
+ );
+
+ $lang->readed_date = "읽은 시간";
+
+ $lang->cmd_login = '로그인';
+ $lang->cmd_logout = '로그아웃';
+ $lang->cmd_signup = '가입';
+ $lang->cmd_modify_member_info = '회원정보 수정';
+ $lang->cmd_modify_member_password = '비밀번호 변경';
+ $lang->cmd_view_member_info = '회원정보 보기';
+ $lang->cmd_leave = '탈퇴';
+
+ $lang->cmd_member_list = '회원 목록';
+ $lang->cmd_module_config = '기본 설정';
+ $lang->cmd_member_group = '그룹 관리';
+ $lang->cmd_send_mail = '메일발송';
+ $lang->cmd_manage_id = '금지아이디관리';
+ $lang->cmd_manage_form = '가입폼관리';
+ $lang->cmd_view_own_document = '작성글 보기';
+ $lang->cmd_send_email = '메일 보내기';
+ $lang->cmd_send_message = '쪽지 보내기';
+ $lang->cmd_add_friend = '친구 등록';
+ $lang->cmd_view_message_box = '쪽지함 보기';
+ $lang->cmd_store = "보관";
+
$lang->msg_new_member = '회원 추가';
$lang->msg_update_member = '회원 정보 수정';
$lang->msg_group_is_null = '등록된 그룹이 없습니다';
@@ -74,7 +85,8 @@
$lang->msg_signup_disabled = '회원 가입을 하실 수 없습니다';
$lang->msg_already_logged = '이미 회원 가입을 하신 상태입니다';
$lang->msg_not_logged = '로그인을 하지 않으셨습니다';
- $lang->msg_content_is_null = '내용을 입력해주세요';
+ $lang->msg_title_is_null = '쪽지 제목을 입력해주세요';
+ $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 0aa09b412..a6240469f 100644
--- a/modules/member/member.controller.php
+++ b/modules/member/member.controller.php
@@ -55,6 +55,8 @@
// 변수 검사
$receiver_srl = Context::get('receiver_srl');
if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member');
+ $title = trim(Context::get('title'));
+ if(!$title) return new Object(-1, 'msg_title_is_null');
$content = trim(Context::get('content'));
if(!$content) return new Object(-1, 'msg_content_is_null');
@@ -65,11 +67,12 @@
// 발송하는 회원의 쪽지함에 넣을 쪽지
$sender_args->message_srl = getNextSequence();
- $sender_args->related_srl = 0;
+ $sender_args->related_srl = getNextSequence();
$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->title = $title;
$sender_args->content = $content;
$sender_args->readed = 'N';
$sender_args->regdate = date("YmdHis");
@@ -77,12 +80,13 @@
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->message_srl = $sender_args->related_srl;
+ $receiver_args->related_srl = 0;
+ $receiver_args->list_order = $sender_args->related_srl*-1;
$receiver_args->sender_srl = $logged_info->member_srl;
$receiver_args->receiver_srl = $receiver_srl;
$receiver_args->message_type = 'R';
+ $receiver_args->title = $title;
$receiver_args->content = $content;
$receiver_args->readed = 'N';
$receiver_args->regdate = date("YmdHis");
diff --git a/modules/member/member.model.php b/modules/member/member.model.php
index 23b48e539..fa073a08b 100644
--- a/modules/member/member.model.php
+++ b/modules/member/member.model.php
@@ -60,7 +60,7 @@
$menu_list[] = sprintf('%s,move_url(\'%s\')', $menu_str, $menu_url);
}
- // 다른 사람의 아이디를 클릭한 경우 (메일, 쪽지 보내기등은 다른 사람에게만 보내는거로 설정)
+ // 다른 사람의 아이디를 클릭한 경우
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
@@ -97,7 +97,7 @@
* @brief user_id에 해당하는 사용자 정보 return
**/
function getMemberInfoByUserID($user_id) {
- if(!$this->member_info[$member_srl]) {
+ if(!$this->member_info[$user_id]) {
$args->user_id = $user_id;
$output = executeQuery('member.getMemberInfo', $args);
if(!$output) return $output;
@@ -251,7 +251,7 @@
if(!$this->member_groups[$member_srl]) {
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberGroups', $args);
- if(!$output->data) return;
+ if(!$output->data) return array();
$group_list = $output->data;
if(!is_array($group_list)) $group_list = array($group_list);
@@ -483,23 +483,85 @@
/**
* @brief 쪽지 내용을 가져옴
**/
- function getMessage($message_srl) {
+ function getSelectedMessage($message_srl) {
+ $logged_info = Context::get('logged_info');
+
$args->message_srl = $message_srl;
$output = executeQuery('member.getMessage',$args);
- return $output->data;
+ $message = $output->data;
+ if(!$message) return ;
+
+ // 보낸 쪽지일 경우 받는 사람 정보를 구함
+ if($message->sender_srl == $logged_info->member_srl && $message->message_type == 'S') $member_info = $this->getMemberInfoByMemberSrl($message->receiver_srl);
+
+ // 보관/받은 쪽지일 경우 보낸 사람 정보를 구함
+ else $member_info = $this->getMemberInfoByMemberSrl($message->sender_srl);
+
+ if($member_info) {
+ foreach($member_info as $key => $val) $message->{$key} = $val;
+ }
+
+ // 받은 쪽지이고 아직 읽지 않았을 경우 읽은 상태로 변경
+ if($message->message_type == 'R' && $message->readed != 'Y') {
+ $oMemberController = &getController('member');
+ $oMemberController->setMessageReaded($message_srl);
+ }
+
+
+ return $message;
}
/**
* @brief 쪽지 목록 가져오기
+ * type = R : 받은 쪽지
+ * type = S : 보낸 쪽지
+ * type = T : 보관함
**/
- function getMessages($type = "R") {
+ function getMessages($message_type = "R") {
+ $logged_info = Context::get('logged_info');
+ switch($message_type) {
+ case 'R' :
+ $args->member_srl = $logged_info->member_srl;
+ $args->message_type = 'R';
+ $query_id = 'member.getReceivedMessages';
+ break;
+ case 'T' :
+ $args->member_srl = $logged_info->member_srl;
+ $args->message_type = 'T';
+ $query_id = 'member.getStoredMessages';
+ break;
+ default :
+ $args->member_srl = $logged_info->member_srl;
+ $args->message_type = 'S';
+ $query_id = 'member.getSendedMessages';
+ break;
+
+ }
+
+ // 기타 변수들 정리
+ $args->sort_index = 'message.list_order';
+ $args->page = Context::get('page');
+ $args->list_count = 10;
+ $args->page_count = 10;
+ return executeQuery($query_id, $args);
}
/**
* @brief 친구 목록 가져오기
**/
function getFriends($friends_group_srl = 0) {
+ $logged_info = Context::get('logged_info');
+
+ $args->friends_group_srl = $friends_group_srl;
+ $args->member_srl = $logged_info->member_srl;
+
+ // 기타 변수들 정리
+ $args->page = Context::get('page');
+ $args->sort_index = 'friends.list_order';
+ $args->list_count = 10;
+ $args->page_count = 10;
+ return executeQuery('member.getMessages', $args);
}
@@ -507,6 +569,11 @@
* @brief 그룹 목록 가져오기
**/
function getFriendsGroups() {
+ $logged_info = Context::get('logged_info');
+
+ $args->member_srl = $logged_info->member_srl;
+
+ return executeQuery('member.getFriendsGroups', $args);
}
}
?>
diff --git a/modules/member/member.view.php b/modules/member/member.view.php
index d813b9084..20765b097 100644
--- a/modules/member/member.view.php
+++ b/modules/member/member.view.php
@@ -185,13 +185,67 @@
/**
* @brief 쪽지함 출력
**/
- function dispMemberMessage() {
+ function dispMemberMessages() {
+ $this->initNormal();
+
+ // 로그인이 되어 있지 않으면 오류 표시
+ if(!Context::get('is_logged')) $this->stop('msg_not_logged');
+ $logged_info = Context::get('logged_info');
+
+ // 변수 설정
+ $message_srl = Context::get('message_srl');
+ $message_type = Context::get('message_type');
+ if(!in_array($message_type, array('R','S','T'))) {
+ $message_type = 'R';
+ Context::set('message_type', $message_type);
+ }
+
+ $oMemberModel = &getModel('member');
+
+ // message_srl이 있으면 내용 추출
+ if($message_srl) {
+ $message = $oMemberModel->getSelectedMessage($message_srl);
+ if($message->message_srl == $message_srl) Context::set('message', $message);
+ }
+
+ // 목록 추출
+ $output = $oMemberModel->getMessages($message_type);
+
+ // 템플릿에 쓰기 위해서 context::set
+ Context::set('total_count', $output->total_count);
+ Context::set('total_page', $output->total_page);
+ Context::set('page', $output->page);
+ Context::set('message_list', $output->data);
+ Context::set('page_navigation', $output->page_navigation);
+
+ $this->setTemplateFile('member_messages');
}
/**
* @brief 쪽지 발송 출력
**/
function dispMemberSendMessage() {
+ $this->initNormal();
+ $this->setLayoutFile("popup_layout");
+
+ // 로그인이 되어 있지 않으면 오류 표시
+ if(!Context::get('is_logged')) $this->stop('msg_not_logged');
+ $logged_info = Context::get('logged_info');
+
+ // 쪽지 받을 사용자 정보 구함
+ $receiver_srl = Context::get('receiver_srl');
+ if(!$receiver_srl || $logged_info->member_srl == $receiver_srl) $this->stop('msg_not_logged');
+
+ $oMemberModel = &getModel('member');
+ $receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
+ Context::set('receiver_info', $receiver_info);
+
+ // 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
+ $oEditorModel = &getModel('editor');
+ $editor = $oEditorModel->getEditor($logged_info->member_srl, false, false);
+ Context::set('editor', $editor);
+
+ $this->setTemplateFile('send_message');
}
/**
diff --git a/modules/member/queries/getFriends.xml b/modules/member/queries/getFriends.xml
new file mode 100644
index 000000000..619177486
--- /dev/null
+++ b/modules/member/queries/getFriends.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/queries/getFriendsGroups.xml b/modules/member/queries/getFriendsGroups.xml
new file mode 100644
index 000000000..1eef8985b
--- /dev/null
+++ b/modules/member/queries/getFriendsGroups.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/queries/getReceivedMessages.xml b/modules/member/queries/getReceivedMessages.xml
new file mode 100644
index 000000000..34626e2a7
--- /dev/null
+++ b/modules/member/queries/getReceivedMessages.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/queries/getSendedMessages.xml b/modules/member/queries/getSendedMessages.xml
new file mode 100644
index 000000000..7c436c4a2
--- /dev/null
+++ b/modules/member/queries/getSendedMessages.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/queries/getStoredMessages.xml b/modules/member/queries/getStoredMessages.xml
new file mode 100644
index 000000000..08f7b5455
--- /dev/null
+++ b/modules/member/queries/getStoredMessages.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/queries/sendMessage.xml b/modules/member/queries/sendMessage.xml
index 97105c446..b2e8c9ba7 100644
--- a/modules/member/queries/sendMessage.xml
+++ b/modules/member/queries/sendMessage.xml
@@ -4,11 +4,14 @@
+
-
+
+
+
-
+
diff --git a/modules/member/queries/setMessageStored.xml b/modules/member/queries/setMessageStored.xml
index 021a1c24d..c3ecdafdc 100644
--- a/modules/member/queries/setMessageStored.xml
+++ b/modules/member/queries/setMessageStored.xml
@@ -3,7 +3,7 @@
-
+
diff --git a/modules/member/schemas/member_message.xml b/modules/member/schemas/member_message.xml
index 3648cff80..cb8e1b7b2 100644
--- a/modules/member/schemas/member_message.xml
+++ b/modules/member/schemas/member_message.xml
@@ -4,6 +4,7 @@
+
diff --git a/modules/member/skins/default/filter/send_message.xml b/modules/member/skins/default/filter/send_message.xml
new file mode 100644
index 000000000..dfab09133
--- /dev/null
+++ b/modules/member/skins/default/filter/send_message.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js
index c5f92e2fb..296da97cd 100644
--- a/modules/member/skins/default/js/member.js
+++ b/modules/member/skins/default/js/member.js
@@ -81,3 +81,9 @@ function doDeleteImageMark(member_srl) {
procFilter(fo_obj, delete_image_mark);
}
+
+/* 쪽지 발송 */
+function completeSendMessage(ret_obj) {
+ alert(ret_obj['message']);
+ window.close();
+}
diff --git a/modules/member/skins/default/member_info.html b/modules/member/skins/default/member_info.html
index 8bdb53d4d..b21451ff0 100644
--- a/modules/member/skins/default/member_info.html
+++ b/modules/member/skins/default/member_info.html
@@ -78,6 +78,7 @@
+
diff --git a/modules/member/skins/default/member_messages.html b/modules/member/skins/default/member_messages.html
new file mode 100644
index 000000000..895c20189
--- /dev/null
+++ b/modules/member/skins/default/member_messages.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/member/skins/default/send_message.html b/modules/member/skins/default/send_message.html
new file mode 100644
index 000000000..c655fc69c
--- /dev/null
+++ b/modules/member/skins/default/send_message.html
@@ -0,0 +1,31 @@
+
+
+
+