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

게시판에 특정 카테고리(분류) 등급별로 보이게 하기 채택완료

sozet 4년 전 조회 2,974

안녕하세요.

 

"서울"이라는 게시판이 있고, "가", "나", "다" 라는 카테고리가 있다면

회원등급 5미만인 회원에게는 "가", "나" 카테고리명과 그에 속한 글만 보이고

회원등급 5이상인 회원에게는 "가", "나", "다" 카테고리명과 그에 속한 글 전부가 보이게 할려면 어덯게 해야 될까요

 

그누보드는 하면 할 수록 궁굼한게 많아지게 되네요 ^^

감사합니다

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

답변 3개

채택된 답변
+20 포인트
e
4년 전

bbs\list.php 파일을 아래와 같이 수정해보세요

</p>

<p>// 분류 사용 여부</p>

<p>$is_category = false;</p>

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

<p>if ($board['bo_use_category']) {</p>

<p>    $is_category = true;</p>

<p>    $category_href = G5_BBS_URL.'/board.php?bo_table='.$bo_table;</p>

<p> </p>

<p>    $category_option .= '<li><a href="'.$category_href.'"';</p>

<p>    if ($sca=='')</p>

<p>        $category_option .= ' id="bo_cate_on"';</p>

<p>    $category_option .= '>전체</a></li>';</p>

<p> </p>

<p>    $categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음</p>

<p>    if($member['mb_level']<5) {</p>

<p>        $key = array_search('다', $categories);</p>

<p>        array_splice( $categories, $key, 1 );</p>

<p>    }</p>

<p>    for ($i=0; $i<count($categories); $i++) {</p>

<p>        $category = trim($categories[$i]);</p>

<p>        if ($category=='') continue;</p>

<p>        $category_option .= '<li><a href="'.($category_href."&sca=".urlencode($category)).'"';</p>

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

<p>        if ($category==$sca) { // 현재 선택된 카테고리라면</p>

<p>            $category_option .= ' id="bo_cate_on"';</p>

<p>            $category_msg = '<span class="sound_only">열린 분류 </span>';</p>

<p>        }</p>

<p>        $category_option .= '>'.$category_msg.$category.'</a></li>';</p>

<p>    }</p>

<p>}</p>

<p>$incate = "'".implode("','",$categories)."'";</p>

<p> </p>

<p>$sop = strtolower($sop);</p>

<p>if ($sop != 'and' && $sop != 'or')</p>

<p>    $sop = 'and';</p>

<p> </p>

<p>// 분류 선택 또는 검색어가 있다면</p>

<p>$stx = trim($stx);</p>

<p>//검색인지 아닌지 구분하는 변수 초기화</p>

<p>$is_search_bbs = false;</p>

<p> </p>

<p>if ($sca || $stx || $stx === '0') {     //검색이면</p>

<p>    $is_search_bbs = true;      //검색구분변수 true 지정</p>

<p>    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);</p>

<p> </p>

<p>    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)</p>

<p>    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";</p>

<p>    $row = sql_fetch($sql);</p>

<p>    $min_spt = (int)$row['min_wr_num'];</p>

<p> </p>

<p>    if (!$spt) $spt = $min_spt;</p>

<p> </p>

<p>    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";</p>

<p> </p>

<p>    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)</p>

<p>    // 라엘님 제안 코드로 대체 <a href="http://sir.kr/g5_bug/2922" target="_blank" rel="noopener noreferrer">http://sir.kr/g5_bug/2922</a></p>

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

<p>    $row = sql_fetch($sql);</p>

<p>    $total_count = $row['cnt'];</p>

<p>    /*</p>

<p>    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";</p>

<p>    $result = sql_query($sql);</p>

<p>    $total_count = sql_num_rows($result);</p>

<p>    */</p>

<p>    $sql_search .= " and ca_name in ($incate) ";</p>

<p>} else {</p>

<p>    $is_search_bbs = true; </p>

<p>    $sql_search = " ca_name in ($incate) ";</p>

<p> </p>

<p>    $total_count = $board['bo_count_write'];</p>

<p>}</p>

<p>

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

답변에 대한 댓글 2개

s
sozet
4년 전
잘됩니다~~ 한가지만 더 궁굼한게요..
회원등긍 5이상이면 "다" 카테고리외에 더 추가하려면 어떻게 해야 되나요??
그리고 skin.list.php만 손대서는 안되나요??

감사합니다~
e
eyekiss
4년 전
https://www.delftstack.com/ko/howto/php/how-to-delete-an-element-from-an-array-in-php/
이 내용 참조하시고.. 아래 부분을 반복해서 추가해주면 됩니다.
$key = array_search('다', $categories);
array_splice( $categories, $key, 1 );

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

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

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

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

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

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

로그인