diff --git a/common/css/default.css b/common/css/default.css index 9131d018d..89235f616 100644 --- a/common/css/default.css +++ b/common/css/default.css @@ -121,5 +121,22 @@ h6 { border:1px solid #DDDDDD; background-color:#FFFFFF; width:100px; - height:100px; + padding:3px; +} + +#membermenuarea .item { + border-bottom:1px dotted #DDDDDD; + height:14px; + padding:3px; + margin-bottom:3px; +} + +#membermenuarea .last_item { + height:14px; + padding:3px; +} + +#membermenuarea A { + color:#777777; + text-decoration:none; } diff --git a/common/js/common.js b/common/js/common.js index 0de835e44..6c7342b4d 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -2,6 +2,20 @@ * 몇가지 유용한 & 기본적으로 자주 사용되는 자바스크립트 함수들 모음 **/ +// href 분석용.. +String.prototype.getQuery = function(key) { + var href = location.href; + var idx = href.indexOf('?'); + if(idx == -1) return; + var query_string = href.substr(idx+1, href.length); + var args = {} + query_string.replace(/([^=]+)=([^&]*)(&|$)/g, function() { args[arguments[1]] = arguments[2]; }); + + var q = args[key]; + if(typeof(q)=="undefined") q = ""; + return q; +} + // string prototype으로 trim 함수 추가 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); @@ -345,19 +359,41 @@ function chkMemberMenu(evt) { var member_srl = obj.className.replace(/member_([0-9]+)/,'$1'); if(member_srl<1) return; + // 현재 글의 mid, module를 구함 + var mid = location.href.getQuery("mid"); + var module = location.href.getQuery("module"); + // 서버에 메뉴를 요청 var params = new Array(); params["member_srl"] = member_srl; + params["cur_mid"] = mid; + params["cur_module"] = module; params["page_x"] = e.pageX; params["page_y"] = e.pageY; - var response_tags = new Array("error","message","tpl"); + var response_tags = new Array("error","message","info_list"); exec_xml("member", "getMemberMenu", params, displayMemberMenu, response_tags, params); } function displayMemberMenu(ret_obj, response_tags, params) { var area = xGetElementById("membermenuarea"); + var info_list = ret_obj['info_list']; + + var html = ""; + var infos = info_list.split("\n"); + for(var i=0;i"+str+""; + } + xInnerHtml(area, html); + + // 메뉴 이동 xLeft(area, params["page_x"]); xTop(area, params["page_y"]); if(xWidth(area)+xLeft(area)>xClientWidth()+xScrollLeft()) xLeft(area, xClientWidth()-xWidth(area)+xScrollLeft()); diff --git a/modules/board/board.class.php b/modules/board/board.class.php index f7a638dce..79b28eb51 100644 --- a/modules/board/board.class.php +++ b/modules/board/board.class.php @@ -7,7 +7,7 @@ class board extends ModuleObject { - var $search_option = array('title','content','title_content','user_name'); ///< 검색 옵션 + var $search_option = array('title','content','title_content','user_name','user_id'); ///< 검색 옵션 var $skin = "default"; ///< 스킨 이름 var $list_count = 20; ///< 한 페이지에 나타날 글의 수 diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index deaa273fa..cfa6b6199 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -11,6 +11,7 @@ $lang->cmd_send_mail = '메일발송'; $lang->cmd_manage_id = '금지아이디관리'; $lang->cmd_manage_form = '가입폼관리'; + $lang->cmd_view_own_document = '작성글 보기'; $lang->member_default_info = '기본 정보'; $lang->member_extend_info = '추가 정보'; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 364d2f539..bcd6e8381 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -459,7 +459,34 @@ * @brief 선택된 회원의 간단한 메뉴를 표시 **/ function getMemberMenu() { + // 요청된 회원 번호와 현재 사용자의 로그인 정보 구함 + $member_srl = Context::get('member_srl'); + $mid = Context::get('cur_mid'); + $module = Context::get('cur_module'); + $logged_info = Context::get('logged_info'); + $info_list = array(); + + // 자신의 아이디를 클릭한 경우 + if($member_srl == $logged_info->member_srl) { + $user_id = $logged_info->user_id; + $user_name = $logged_info->user_name; + + // 다른 사람의 아이디를 클릭한 경우 + } else { + + // 회원의 정보를 구함 + $member_info = $this->getMemberInfoByMemberSrl($member_srl); + $user_id = $member_info->user_id; + $user_name = $member_info->user_name; + } + + if($mid) { + $info_list[] = sprintf('%s, %s', Context::getLang('cmd_view_own_document'), sprintf('./?mid=%s&search_target=user_id&search_keyword=%s', $mid, $user_id)); + } + + // 정보를 저장 + $this->add("info_list", implode("\n",$info_list)); } } ?>