묻고답하기
회원정보 팝업을 관리자에게만 뜨게
2013.07.03 23:37
아래사진처럼.. 게시판에서 글쓴이 닉네임을 클릭하면
"회원정보보기, 메일보내기, 작성글보기" 등 나오는 조그만 팝업창 뜨는데
그걸 안뜨게하는 방법을
송동우님과 sejin7940님의 도움으로 해결을 보았습니다.
방법은,
이렇게 해주니 되더라구요.
일단, 안뜨게하는것은 위 소스처럼하면 됩니다.
그런데, 위 소스는 팝업이 누구에게나 아예 안뜨게하는 방법인데요.
여기서 좀더 발전하여.. 팝업을 회원들에게는 안뜨게하고,
관리자에게만 뜨게하려면 아래소스를 어떻게 손봐야 할까요?
function getMemberMenu()
{
// Get member_srl of he target member and logged info of the current user
$member_srl = Context::get('target_srl');
$mid = Context::get('cur_mid');
$logged_info = Context::get('logged_info');
$act = Context::get('cur_act');
// When click user's own nickname
if($member_srl == $logged_info->member_srl) $member_info = $logged_info;
// When click other's nickname
else $member_info = $this->getMemberInfoByMemberSrl($member_srl);
$member_srl = $member_info->member_srl;
if(!$member_srl) return;
// List variables
$user_id = $member_info->user_id;
$user_name = $member_info->user_name;
ModuleHandler::triggerCall('member.getMemberMenu', 'before', $null);
$oMemberController = &getController('member');
// Display member information (Don't display to non-logged user)
if($logged_info->member_srl)
{
$url = getUrl('','mid',$mid,'act','dispMemberInfo','member_srl',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_view_member_info',$icon_path,'self');
}
// When click other's nickname
if($member_srl != $logged_info->member_srl && $logged_info->member_srl)
{
// Send an email
if($member_info->email_address)
{
$url = 'mailto:'.htmlspecialchars($member_info->email_address);
$oMemberController->addMemberPopupMenu($url,'cmd_send_email',$icon_path);
}
}
// View homepage info
if($member_info->homepage)
$oMemberController->addMemberPopupMenu(htmlspecialchars($member_info->homepage), 'homepage', '', 'blank');
// View blog info
if($member_info->blog)
$oMemberController->addMemberPopupMenu(htmlspecialchars($member_info->blog), 'blog', '', 'blank');
// Call a trigger (after)
ModuleHandler::triggerCall('member.getMemberMenu', 'after', $null);
// Display a menu for editting member info to a top administrator
if($logged_info->is_admin == 'Y')
{
$url = getUrl('','module','admin','act','dispMemberAdminInsert','member_srl',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_manage_member_info',$icon_path,'MemberModifyInfo');
$url = getUrl('','module','admin','act','dispDocumentAdminList','search_target','member_srl','search_keyword',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_trace_document',$icon_path,'TraceMemberDocument');
$url = getUrl('','module','admin','act','dispCommentAdminList','search_target','member_srl','search_keyword',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_trace_comment',$icon_path,'TraceMemberComment');
}
// Change a language of pop-up menu
$menus = Context::get('member_popup_menu_list');
$menus_count = count($menus);
for($i=0;$i<$menus_count;$i++)
{
$menus[$i]->str = Context::getLang($menus[$i]->str);
}
// Get a list of finalized pop-up menu
$this->add('menus', $menus);
}
(xe 최신버전입니다.)
****************내용추가********************
아래 송동우님께서 올려주신 답변 http://www.xpressengine.com/qna/21130650 데로 했더니..
그렇게하니까.. 팝업창은 뜨고 "회원정보"항목만 빠지더라구요.. 즉, 메일보내기,쪽지보내기 그런것은 다 나오구요..
저는 회원에게는 아예 그 팝업 자체를 안뜨게 하고싶어서요~ 방법이 없을까요??
댓글 1
-
송동우
2013.07.03 23:44
member 모듈의 getMemberMenu 함수 시작하자 마자
if($logged_info->is_admin!='Y') return;
이것 추가...........
-
미누7
2013.07.04 01:14
바꾸었는데요~ 그렇게하니까.. 팝업창은 뜨고 "회원정보"항목만 빠지더라구요.. 즉, 메일보내기,쪽지보내기 그런것은 다 나오구요.. 저는 회원에게는 아예 그 팝업을 안뜨게 하고싶어서요~ 방법이 없을까요?? -
미누7
2013.07.07 16:25
function getMemberMenu() { if($logged_info->is_admin!='Y') return; 이렇게 했는데 여전히 회원과 어드민 모두에게 팝업이 안떠요..ㅠㅠ
modules/member/member.model.php 에서
function getMemberMenu()
{
부분을
function getMemberMenu()
{ return;