그누프레스에서 공지사항 룰에 관하여

그누프레스에서 공지사항 룰에 관하여

QA

그누프레스에서 공지사항 룰에 관하여

본문

그누프레스에서 분류를 사용할때 리스트에서 분류를 클릭하면 공지사항들이 안보이네요.

글쓰기할때도 분류를 사용하면 공지를 선택시엔 분류를 선택안해도 되잖아요?

공지사항 쓸때 분류를 선택하지 않아도 되게 그리고 리스트에서 공지사항이 분류의 영향을 받지 않고 계속 제일위에 나타나게 할 수 있나요?

 

이 질문에 댓글 쓰기 :

답변 1

직접 수정해야 되므로 추천하지 않습니다만,

 

하실려면 아래와 같이 직접 수정해야 합니다.

 

gnupress/bbs/list.php

 

에서 113 번째 줄쯤

 

// 공지 처리

if (!$sca && !$stx && !count($search_tag)) {

    

    $from_notice_idx = ($page - 1) * $page_rows;

    if($from_notice_idx < 0)

        $from_notice_idx = 0;

    

    if( !empty($board['bo_notice']) ){ //공지가 있다면

 

        $arr_notice = explode(',', trim($board['bo_notice']));

        $board_notice_count = count($arr_notice);

        $wr_ids = join(',' , $arr_notice);

 

        if( !$wr_ids ) break;

        $sql = "select * from {$write_table} where wr_id in ( $wr_ids ) order by wr_num";

        $notice_list = $wpdb->get_results($sql, ARRAY_A);

 

        foreach( $notice_list as &$row ){

            if (!$row['wr_id']) continue;

            $notice_array[] = $row['wr_id'];

            if($k < $from_notice_idx) continue;

        

            $row = $this->get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len'], $default_href);

            $row['is_notice'] = true;

            $notice_count++;

            $k++;

 

            if($notice_count >= $list_page_rows)

                break;

        }

    }

}

 

아래와 같이 고칩니다.

 


// 공지 처리
 
    $from_notice_idx = ($page - 1) * $page_rows;
    if($from_notice_idx < 0)
        $from_notice_idx = 0;
    
    if( !empty($board['bo_notice']) ){ //공지가 있다면
 
        $arr_notice = explode(',', trim($board['bo_notice']));
        $board_notice_count = count($arr_notice);
        $wr_ids = join(',' , $arr_notice);
 
        if( !$wr_ids ) break;
        $sql = "select * from {$write_table} where wr_id in ( $wr_ids ) order by wr_num";
        $notice_list = $wpdb->get_results($sql, ARRAY_A);
 
        foreach( $notice_list as &$row ){
            if (!$row['wr_id']) continue;
            $notice_array[] = $row['wr_id'];
            if($k < $from_notice_idx) continue;
        
            $row = $this->get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len'], $default_href);
            $row['is_notice'] = true;
            $notice_count++;
            $k++;
 
            if($notice_count >= $list_page_rows)
                break;
        }
    }

 

 

 

197번째 줄 이렇게 되어 있을것을

 

if ($sca || $stx || count($search_tag)) {

    $sql = $wpdb->prepare(" select SQL_CALC_FOUND_ROWS * from {$write_table} where {$sql_search} {$sql_order} limit %d, %d ", $from_record, $page_rows);

 

 

아래와 같이 고칩니다.

 


if ($sca || $stx || count($search_tag)) {
 
    if(!empty($notice_array))
        $sql_search .= " and wr_id not in (".implode(', ', $notice_array).") ";
 
    $sql = $wpdb->prepare(" select SQL_CALC_FOUND_ROWS * from {$write_table} where {$sql_search} {$sql_order} limit %d, %d ", $from_record, $page_rows);
답변을 작성하시기 전에 로그인 해주세요.
전체 167
QA 내용 검색

회원로그인

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