게시판에 분류를 사용하고 있는데 공지사항 관련 문의입니다..

게시판에 분류를 사용하고 있는데 공지사항 관련 문의입니다..

QA

게시판에 분류를 사용하고 있는데 공지사항 관련 문의입니다..

본문

안녕하세요.

 

게시판의 분류를 사용하여 

[전체] [메뉴1] [메뉴2] [메뉴3]이런식으로 사용하고 있는데요..

 

공지사항이 전체에만 나와서 분류 탭에서도 공지사항을 보이기 위해

 

list.php에 아래와 같은 소스로 공지사항 부분을 출력하고 있습니다.

 

// 공지 처리
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<4; $k++) {
        if (trim($arr_notice[$k]) == '') continue;

        $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");

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

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

        if($k < $from_notice_idx) continue;

        $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;

        $i++;
        $notice_count++;

        if($notice_count >= $list_page_rows)
            break;
    }
}else if ($sca && !$stx) {

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

    if($page==1){
    for ($k=0; $k<count($arr_notice); $k++) {

        if (trim($arr_notice[$k])=='') continue;

        $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' and ca_name = '{$sca}' ");

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

        $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;

        $i++;

    }
}


근데 분류에서 글을 12개만 출력하고 싶은데 첫페이지에서 공지사항 개수 + 12개 가 출력되고 있습니다..
첫페이지에서도 공지사항 포함 12개만 나오게 할 수 있을까요?..

이 질문에 댓글 쓰기 :

답변 2

우선, 원본파일을 저장한 후 
다음 구문 중에서 주석처리한 것을 추가 및 제거를 해 보시면 원하시는 답이 나올 것 같습니다. 잘 응용하여 보십시오~^^)

 

자유게시판이고 페이지당 목록 수가 20개로 설정이 되어 있다면

// 공지 처리

......

......

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

 

    if($bo_table =='free'){
    if($k < $from_notice_idx) continue;
        $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;
        //$i++; // 주석처리 안하면 이상함
        $notice_count++; // 주석처리 안하면 첫페이지 공지+비공지=20개씩 노출, 주석처리하면 첫페이지 공지+비공지=공지+20개씩 노출
        }

 

        //if($k < $from_notice_idx) continue; //게시판 다음 페이지에도 공지가 보이게 주석처리
        $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;
        $i++;
        //$notice_count++; //게시판 다음 페이지에도 공지가 보이게 주석처리

 

        if($notice_count >= $list_page_rows)
            break;

다음처럼 //로 되어 있는 부분을 잘 보시고 하나하나 적용하여 보십시오~^^)
....
//$i++; // 이부분은 주석처리 하여 주십시오~
        $notice_count++; // 첫페이지 = 공지포함 20개 노출
        //$notice_count++; // 첫페이지 = 공지+20개 노출
....
if($k < $from_notice_idx) continue; //다음 페이지에는 공지가 안 보임
....
    $notice_count++; //다음 페이지에는 공지가 안 보임
또는
//if($k < $from_notice_idx) continue; //다음 페이지에도 공지가 보임
....
    //$notice_count++; //다음 페이지에도 공지가 보임

else if부분에 적용해야 하는건가요?..
i++을 제거 하는 순간 공지사항 노출이 전혀 안됩니다..
if($bo_table =='free') 이런식으로 가져오면..
[전체] [메뉴1] [메뉴2] [메뉴3] 가 테이블 자체는 모두 같은 테이블 이기 때문에
저 if문을 전부타 탈꺼같은데...아닌가요?..

상황이 좀 다른 것 같습니다.

1. 우선, 다음의 팁을 적용하시고
* 분류 선택시 공지사항 상단 노출 => http://www.gnuwiz.com/board_tip/43

2. 그리고 제가 말씀드린 것을 상황에 맞게 적용하여야 할 것 같습니다.
저도 많이 헤메이다가 지금은 잘 적용하고 있습니다.
바로 적용할 수 있는 도움이 되지 못해서 미안합니다....ㅜㅜ

답변을 작성하시기 전에 로그인 해주세요.
전체 89
QA 내용 검색

회원로그인

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