코노리님의 게시글 읽은이 표시 애드온에서 

읽은이 중에 관리자는 제외하고 싶습니다.

https://xetown.com/index.php?mid=xepoint&category=17120&document_srl=11882

 

어떻게 하면 되나요?

 

삽질 중인데 잘 안되네요.

1. 본인이 쓴 게시물에는 작성자 표시에 안 나타나게 하는 방법

2. 관리자인 경우에는 관리자만 확인하는 방법 

 

ㅠㅠ

  • profile
    1. ??? 읽은이 목록에 작성자 본인이 나타나나요?

    2-1. 관리자 작성 게시물에선 애드온 출력을 중지한다는 말씀이신가요? $member_info에 관리자 확인 변수가 담겨 있을 것 같은데용

    2-2. 읽은이 목록에서 관리자만 안나타나게 하려 해도 마찬가지로 $member_info로 관리자 확인해서 예외 처리하면 될 것 같구요.
  • profile profile
    1. 익명 게시판이었군요 -_-
    2-1. {$member_info} 로 띄워보면 애드온에서 아무것도 안 나타납니다.
    2-2. 엄;;ㅁ;
  • profile profile

    아, 방금 다운 받아보니 구조가 효율성짱인 것 같아요. 대신 member_info는 들어설 자리가 없구요ㅋㅋ 역시 갓노리님...
    그렇다고, 루프 돌 때마다 member_srl로 매번 관리자 여부를 체크하면 비효율적일 것 같고,
    차라리 사전에 관리자 그룹에 속한 member_srl을 빼내서 배열로 따로 저장한 다음에,
    읽은이 추출하는 반복문에서 in_array로 조건을 걸어주면 어떨까요?

  • profile profile

    보통 관리자그룹의 group_srl이 1이니까, member_group_member 테이블로 db 쿼리를 날리면 관리자(들)의 member_srl을 추출할 수 있을 것 같아요.

    {@
    $oDB = &DB::getInstance();
    $query = $oDB->_query('SELECT member_srl FROM rx_member_group_member WHERE group_srl = 1');
    $result = $oDB->_fetch($query);
    }

    (관리자그룹의 번호가 1이 아니라면, getAdminGroup.xml 같은 걸 이용해서 그룹 번호를 빼낸 뒤 위의 쿼리를 실행하면 되겠구요.)

    그리고 여기서 얻은 member_srl 배열을 애드온의 reader_list 반복문 내의 $val->member_srl과 대조함으로써 끝,

    ...이면 좋겠당ㅋ

  • profile profile
    앗, 죄송.. 질문의 의미가 2-1이었나요?
    그럼 더 간단할 수 있겠네요.
    애드온 파일 21행 조건문이 있는데요.
    if(!$oDocument->isExists() || $oDocument->get('member_srl') == $logged_info->member_srl) return;
    여기에 앞서 관리자그룹의 member_srl을 추출해내고,
    $oDocument->get('member_srl')이 관리자그룹에 속한 member_srl 배열에 포함됐는지 조건을 덧붙이면 될 것 같아요.