diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php index dca43aa7b..610e4325d 100644 --- a/addons/member_extra_info/member_extra_info.addon.php +++ b/addons/member_extra_info/member_extra_info.addon.php @@ -86,6 +86,13 @@ // 메뉴에 새로 만든 쪽지 발송 메뉴를 추가 $menu_list .= sprintf("\n%s,popopen('%s','sendMessage')", $menu_str, $menu_link); + + // 5. 친구 등록 메뉴를 만듬 + $menu_str = Context::getLang('cmd_add_friend'); + $menu_link = sprintf('./?module=member&act=dispMemberAddFriend&target_srl=%s',$member_srl); + + // 메뉴에 새로 만든 쪽지 발송 메뉴를 추가 + $menu_list .= sprintf("\n%s,popopen('%s','addFriend')", $menu_str, $menu_link); } // 템플릿에 적용되게 하기 위해 module의 variables에 재등록 diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index 39ef8f49d..9f0033293 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -69,6 +69,7 @@ $lang->cmd_view_own_document = '작성글 보기'; $lang->cmd_send_email = '메일 보내기'; $lang->cmd_send_message = '쪽지 보내기'; + $lang->cmd_view_friend = '친구 보기'; $lang->cmd_add_friend = '친구 등록'; $lang->cmd_view_message_box = '쪽지함 보기'; $lang->cmd_store = "보관"; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 76ab730a1..b6a8283b8 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -568,7 +568,7 @@ /** * @brief 친구 목록 가져오기 **/ - function getFriend($friend_group_srl = 0) { + function getFriends($friend_group_srl = 0) { $logged_info = Context::get('logged_info'); $args->friend_group_srl = $friend_group_srl; @@ -579,7 +579,7 @@ $args->sort_index = 'friend.list_order'; $args->list_count = 10; $args->page_count = 10; - return executeQuery('member.getMessages', $args); + return executeQuery('member.getFriends', $args); } @@ -588,10 +588,14 @@ **/ function getFriendGroups() { $logged_info = Context::get('logged_info'); - $args->member_srl = $logged_info->member_srl; - return executeQuery('member.getFriendGroups', $args); + $output = executeQuery('member.getFriendGroups', $args); + $group_list = $output->data; + if(!$group_list) return; + + if(!is_array($group_list)) $group_list = array($group_list); + return $group_list; } } ?> diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 9e4923493..cd23fee7b 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -189,7 +189,7 @@ $this->initNormal(); // 로그인이 되어 있지 않으면 오류 표시 - if(!Context::get('is_logged')) $this->stop('msg_not_logged'); + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); $logged_info = Context::get('logged_info'); // 변수 설정 @@ -226,9 +226,10 @@ **/ function dispMemberNewMessage() { $this->initNormal(); + $this->setLayoutFile('popup_layout'); // 로그인이 되어 있지 않으면 오류 표시 - if(!Context::get('is_logged')) $this->stop('msg_not_logged'); + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); $logged_info = Context::get('logged_info'); $oMemberModel = &getModel('member'); @@ -242,7 +243,6 @@ $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); @unlink($flag_file); - $this->setLayoutFile('popup_layout'); $this->setTemplateFile('member_new_message'); } @@ -254,12 +254,12 @@ $this->setLayoutFile("popup_layout"); // 로그인이 되어 있지 않으면 오류 표시 - if(!Context::get('is_logged')) $this->stop('msg_not_logged'); + if(!Context::get('is_logged')) return $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'); + if(!$receiver_srl || $logged_info->member_srl == $receiver_srl) return $this->stop('msg_not_logged'); $oMemberModel = &getModel('member'); $receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl); @@ -277,12 +277,47 @@ * @brief 친구 목록 보기 **/ function dispMemberFriend() { + $this->initNormal(); + $this->setLayoutFile("popup_layout"); + + // 로그인이 되어 있지 않으면 오류 표시 + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); + + $oMemberModel = &getModel('member'); + + // 그룹 목록을 가져옴 + $friend_group_list = $oMemberModel->getFriendGroup(); + Context::set('friend_group_list', $friend_group_list); + + // 친구 목록을 가져옴 + $friend_group_srl = Context::get('friend_group_srl'); + $friend_list = $oMemberModel->getFriends($friend_group_srl); + Context::set('friend_list', $friend_list); + + $this->setTemplate('friend_list'); } /** * @brief 친구 추가 **/ function dispMemberAddFriend() { + $this->initNormal(); + $this->setLayoutFile("popup_layout"); + + // 로그인이 되어 있지 않으면 오류 표시 + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); + $logged_info = Context::get('logged_info'); + + $target_srl = Context::get('target_srl'); + if(!$target_srl) return $this->stop('msg_invalid_request'); + + // 대상 회원의 정보를 구함 + $oMemberModel = &getModel('member'); + $member_info = $oMemberModel->getMemberInfoByMemberSrl($target_srl); + if($member_info->member_srl != $target_srl) return $this->stop('msg_invalid_request'); + Context::set('target_info', $member_info); + + $this->setTemplateFile('add_friend'); } /** diff --git a/modules/member/queries/addFriend.xml b/modules/member/queries/addFriend.xml index 2ee71cadc..1914f8be7 100644 --- a/modules/member/queries/addFriend.xml +++ b/modules/member/queries/addFriend.xml @@ -4,7 +4,7 @@ - + diff --git a/modules/member/queries/getFriendsGroups.xml b/modules/member/queries/getFriendGroups.xml similarity index 100% rename from modules/member/queries/getFriendsGroups.xml rename to modules/member/queries/getFriendGroups.xml diff --git a/modules/member/queries/getFriends.xml b/modules/member/queries/getFriends.xml index 72cf2c07b..ea7201f46 100644 --- a/modules/member/queries/getFriends.xml +++ b/modules/member/queries/getFriends.xml @@ -1,4 +1,4 @@ - +