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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
게시판에 분류를 사용하고 있는데 공지사항 관련 문의입니다..

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

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

회원로그인

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