테스트 사이트 - 개발 중인 베타 버전입니다

회원차단 플러그인 질문입니다 채택완료

인디안바압 3년 전 조회 2,329

https://sir.kr/g5_plugin/1401

 

해당 플러그인을 사용하고 있는데 

사용해 보니까 A회원이 B회원을 차단할 경우 

A회원이 B회원의 게시물을 보지 못 하는 방식이더라구요.

 

이걸 A회원이 B회원을 차단할 경우 

B회원은 A회원을 게시물도 볼 수 없게 수정하려면

어떻게 하면 될까요...

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
아르키어드

A회원 : 차단을 한 회원
B회원 : 차단을 당한 회원

DB구조를 보니까 A회원이 로그인 한 상태에서 B회원을 차단 했을때 DB에
mb_id는 A회원의 mb_id
block_id는 B회원의 mb_id 인것으로 보이는데요..

/extend/user.block.id.php에서 $tmp_block 이 A회원이 차단한 회원(B회원)의 목록을 가져오는것 같습니다.

그럼 반대로 

/extend/user.block.id.php에서 내가 차단한 회원이 아니라 내가 차단 당한 쿼리를 작성해보면

</p>

<p>$back_block = sql_fetch(" SELECT * FROM $g5_id_block WHERE block_id = '$me_member' ");</p>

<p>

그리고 /bbs/list.php에서 

</p>

<p>// .../bbs/list.php</p>

<p>// 차단 회원 list 감추기</p>

<p>if($tmp_block['block_id'])</p>

<p>{</p>

<p>    $sql_search_block = '';</p>

<p>    $blocks = explode(',', $tmp_block['block_id']);</p>

<p>    for ($k=0, $blockc=count($blocks); $k<$blockc; $k++)</p>

<p>         $sql_search_block .= " and mb_id <> '$blocks[$k]' ";</p>

<p>}</p>

<p>// 추가</p>

<p>if($back_block['mb_id'])</p>

<p>{</p>

<p>    $sql_search_back_block = '';</p>

<p>    $blocks = explode(',', $tmp_block['block_id']);</p>

<p>    for ($k=0, $blockc=count($blocks); $k<$blockc; $k++)</p>

<p>         $sql_search_back_block .= " and block_id <> '$blocks[$k]' ";</p>

<p>}</p>

<p>// ... 생략</p>

<p>// $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_block} ";

$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_block} {$sql_search_back_block}";</p>

<p>// ... 생략</p>

<p>if ($sca || $stx) {</p>

<p>  // $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_search_block} {$sql_order} limit {$from_record}, $page_rows ";</p>

<p> </p>

<p>  $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_search_block} {$sql_search_back_block} {$sql_order} limit {$from_record}, $page_rows ";</p>

<p>} else {</p>

<p>  // $sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search_block}";</p>

<p> </p>

<p>  $sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search_block} {$sql_search_back_block}";</p>

<p>}</p>

<p> </p>

<p>// .../bbs/list.php</p>

<p>


저도 테스팅을 안해봐서 잘 실행 될지는 모르겠지만 중요한건 기존에 차단리스트를 불러오는 로직을 반대로 하시면 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

인디안바압
3년 전
답변감사합니다! 말씀대로 진행해보니 2가지 문제점이 보이네요 ㅠ

1. 차단 당한 사람은 차단 한 사람의 게시물 뿐만 아니라 공지를 제외한 모두의 게시글이 보이지 않습니다ㅠ
2. 차단 시 차단 목록에 등록이 되질 않습니다 ㅠ

뭐가 문제일까요
아르키어드
3년 전
일단 저도 테스트를 진행해본게 아니라서 자세히는 알수 없습니다만.. 위에서 제가 추가한 쿼리쪽을 직접 찍어보시는게 좋을거같고... 등록부분은 딱히 건드린 부분이 없습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인