게시판 특정 컬럼조건 만족시 노출 (관리자 수락 후 노출) > 그누보드5 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 팁자료실

게시판 특정 컬럼조건 만족시 노출 (관리자 수락 후 노출) 정보

게시판 특정 컬럼조건 만족시 노출 (관리자 수락 후 노출)

본문

게시물 작성 후 바로 노출되지 않고 관리자가 수락 후 노출되어야 하는 경우가 있습니다.

 

아래 코드와 같이 처리하시면 됩니다.

(관리자가 수락하는 코드는 포함되어있지 않습니다. 게시판 노출시 특정 컬럼조건을 만족하는 게시물만 쿼리하는 코드립니다.)

 

(아래 코드는 기존 컬럼(ex.wr_10)이 아닌 새로 생성한 컬럼(row_show)으로 조회합니다.

DB 해당 게시판 table에 노출여부 컬럼을 아래와 같이 생성하시거나

alter table g5_write_chk_and_show add row_show tinyint(1) 

혹은 기존 컬럼으로 조회 (where wr_10 = 1) 등으로 변경하시면 됩니다.)

 

/bbs/list.php

 

if ($sca || $stx || $stx === '0') {     //검색이면
    $is_search_bbs = true;      //검색구분변수 true 지정
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
    $row = sql_fetch($sql);
    $min_spt = (int)$row['min_wr_num'];

    if (!$spt) $spt = $min_spt;

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

    //#조건노출
    if ($bo_table=="테이블명" && !$is_admin) {
        $sql_search .= " and row_show = 1 ";
    }


    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */
} else {

    //#조건노출
    if ($bo_table=="테이블명" && !$is_admin) {
        $sql_search = " row_show = 1 ";
        $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
        $row = sql_fetch($sql);
        $total_count = $row['cnt'];
    }else{
        $sql_search = "";
        $total_count = $board['bo_count_write'];
    }


}

 

===============================

 

// 공지 처리
if (!$is_search_bbs) {
    $arr_notice = explode(',', trim($board['bo_notice']));
    $from_notice_idx = ($page - 1) * $page_rows;
    if($from_notice_idx < 0)
        $from_notice_idx = 0;
    $board_notice_count = count($arr_notice);

    for ($k=0; $k<$board_notice_count; $k++) {
        if (trim($arr_notice[$k]) == '') continue;

        //#조건노출
        if ($bo_table=="테이블명" && !$is_admin) {
            $sql_search = " and row_show = 1 ";
            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' {$sql_search}");
        }else{
            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");
        }

 

================================

 

if ($is_search_bbs) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 ";


    //#조건노출
    if ($bo_table=="테이블명" && !$is_admin) {
        $sql_search = " and row_show = 1 ";
        $sql .= $sql_search;
    }

    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    echo $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}

 

============================

/bbs/search.php

 

    $sql_search = $str;

    //#조건노출
    if ($bo_table=="테이블명" && !$is_admin) {
        $sql_search .= " and row_show = 1 ";
    }


    $str_board_list = "";
    $board_count = 0;

 

 

버그가있는 경우 댓글로 정정 부탁드립니다.

 

추천
5

댓글 5개

I don’t think my columns are ever satisfied whatever I try. Maybe I input a wrong character in the code somewhere. Is there an AI that can help seek where the problem is?
전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT