diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php index 580e74d7d..0a6a4e26f 100644 --- a/addons/member_extra_info/member_extra_info.addon.php +++ b/addons/member_extra_info/member_extra_info.addon.php @@ -1,5 +1,5 @@ 내용 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가 $output = preg_replace_callback('!]*)document_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transSignature'), $output); + /** + * 3 기능 수행 : 시작할때 새쪽지가 왔는지 검사 + * 조건 : called_position = 'before_module_init', act != 'dispMemberNewMessage' + **/ + } elseif($called_position == 'before_module_init' && $this->act != 'dispMemberNewMessage' && Context::get('is_logged') ) { + + // 로그인된 사용자 정보를 구함 + $logged_info = Context::get('logged_info'); + + $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl); + $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); + + // 새로운 쪽지에 대한 플래그가 있으면 쪽지 보기 팝업 띄움 + if(file_exists($flag_file)) { + Context::addHtmlHeader( sprintf('', './?module=member&act=dispMemberNewMessage') ); + } + /** * 4,5 기능 수행 : 사용자 이름을 클릭시 요청되는 MemberModel::getMemberMenu 후에 $menu_list에 쪽지 발송, 친구추가등의 링크 추가 * 조건 : called_position == 'after_module_proc', module = 'member', act = 'getMemberMenu' diff --git a/addons/naver_search/naver_search.addon.php b/addons/naver_search/naver_search.addon.php index 99208d1bd..29032ad05 100644 --- a/addons/naver_search/naver_search.addon.php +++ b/addons/naver_search/naver_search.addon.php @@ -1,5 +1,5 @@ !is', array($this, '_compileImportCode'), $buff); // 파일에 쓰기 전에 직접 호출되는 것을 방지 - $buff = sprintf('%s%s%s','',"\n",$buff); + $buff = sprintf('%s%s%s','',"\n",$buff); // 컴파일된 코드를 파일에 저장 FileHandler::writeFile($compiled_tpl_file, $buff); diff --git a/classes/xml/XmlQueryParser.class.php b/classes/xml/XmlQueryParser.class.php index 449443efb..8ec3c2577 100644 --- a/classes/xml/XmlQueryParser.class.php +++ b/classes/xml/XmlQueryParser.class.php @@ -58,7 +58,7 @@ // 캐쉬 내용 작성 $buff = sprintf( - ' + diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index d8d6cbbcf..39ef8f49d 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -76,6 +76,8 @@ $lang->msg_cart_is_null = '삭제할 쪽지를 선택해주세요'; $lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다'; + $lang->msg_no_message = '쪽지가 없습니다'; + $lang->msg_new_member = '회원 추가'; $lang->msg_update_member = '회원 정보 수정'; $lang->msg_group_is_null = '등록된 그룹이 없습니다'; diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 13f862551..4bfb73d02 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -21,8 +21,8 @@ $oModuleController->insertActionForward('member', 'view', 'dispMemberLogout'); $oModuleController->insertActionForward('member', 'view', 'dispMemberMessages'); - $oModuleController->insertActionForward('member', 'view', 'dispMemberStoreMessage'); $oModuleController->insertActionForward('member', 'view', 'dispMemberSendMessage'); + $oModuleController->insertActionForward('member', 'view', 'dispMemberNewMessage'); $oModuleController->insertActionForward('member', 'view', 'dispMemberFriends'); $oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriend'); $oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriendGroup'); @@ -119,7 +119,7 @@ FileHandler::makeDir('./files/member_extra_info/attach/image_name'); FileHandler::makeDir('./files/member_extra_info/attach/image_mark'); FileHandler::makeDir('./files/member_extra_info/attach/signature'); - FileHandler::makeDir('./files/session/'); + FileHandler::makeDir('./files/member_extra_info/new_message_flags'); return new Object(); } diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 1537f5399..9a7f32d89 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -93,6 +93,12 @@ $output = executeQuery('member.sendMessage', $receiver_args); if(!$output->toBool()) return $output; + // 받는 회원의 쪽지 발송 플래그 생성 (파일로 생성) + $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl); + FileHandler::makeDir($flag_path); + $flag_file = sprintf('%s%s', $flag_path, $receiver_srl); + FileHandler::writeFile($flag_file,'1'); + $this->setMessage('success_sended'); } diff --git a/modules/member/member.model.php b/modules/member/member.model.php index fa073a08b..2cd8db02a 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -511,6 +511,24 @@ return $message; } + /** + * @brief 새 쪽지를 가져옴 + **/ + function getNewMessage() { + $logged_info = Context::get('logged_info'); + $args->receiver_srl = $logged_info->member_srl; + $args->readed = 'N'; + + $output = executeQuery('member.getNewMessage', $args); + if(!count($output->data)) return; + $message = array_pop($output->data); + + $oMemberController = &getController('member'); + $oMemberController->setMessageReaded($message->message_srl); + + return $message; + } + /** * @brief 쪽지 목록 가져오기 * type = R : 받은 쪽지 diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 20765b097..801e42722 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -221,6 +221,31 @@ $this->setTemplateFile('member_messages'); } + /** + * @brief 새 쪽지 보여줌 + **/ + function dispMemberNewMessage() { + $this->initNormal(); + + // 로그인이 되어 있지 않으면 오류 표시 + if(!Context::get('is_logged')) $this->stop('msg_not_logged'); + $logged_info = Context::get('logged_info'); + + $oMemberModel = &getModel('member'); + + // 새 쪽지를 가져옴 + $message = $oMemberModel->getNewMessage(); + if($message) Context::set('message', $message); + + // 플래그 삭제 + $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl); + $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); + @unlink($flag_file); + + $this->setLayoutFile('popup_layout'); + $this->setTemplateFile('member_new_message'); + } + /** * @brief 쪽지 발송 출력 **/ diff --git a/modules/member/queries/getNewMessage.xml b/modules/member/queries/getNewMessage.xml new file mode 100644 index 000000000..6aaf769e4 --- /dev/null +++ b/modules/member/queries/getNewMessage.xml @@ -0,0 +1,20 @@ + + + +
+ + + + + + + + + + + + + + + + diff --git a/modules/member/skins/default/filter/send_message.xml b/modules/member/skins/default/filter/send_message.xml index dfab09133..2756c3398 100644 --- a/modules/member/skins/default/filter/send_message.xml +++ b/modules/member/skins/default/filter/send_message.xml @@ -1,6 +1,6 @@
- + diff --git a/modules/member/skins/default/member_new_message.html b/modules/member/skins/default/member_new_message.html new file mode 100644 index 000000000..62507291b --- /dev/null +++ b/modules/member/skins/default/member_new_message.html @@ -0,0 +1,34 @@ + + +
+ +
+ + + + + + + + + + + + + + +
+ {$lang->sender} +
{$message->nick_name} ({$message->user_id})
{$lang->title}{htmlspecialchars($message->title)}
{$message->content}
+ + + +
+ + + + +