게시판에 분류를 사용하고 있는데 공지사항 관련 문의입니다..
안녕하세요.
게시판의 분류를 사용하여
[전체] [메뉴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개 / 댓글 6개
우선, 원본파일을 저장한 후
다음 구문 중에서 주석처리한 것을 추가 및 제거를 해 보시면 원하시는 답이 나올 것 같습니다. 잘 응용하여 보십시오~^^)
자유게시판이고 페이지당 목록 수가 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;
답변에 대한 댓글 6개
....
//$i++; // 이부분은 주석처리 하여 주십시오~
$notice_count++; // 첫페이지 = 공지포함 20개 노출
//$notice_count++; // 첫페이지 = 공지+20개 노출
....
if($k < $from_notice_idx) continue; //다음 페이지에는 공지가 안 보임
....
$notice_count++; //다음 페이지에는 공지가 안 보임
또는
//if($k < $from_notice_idx) continue; //다음 페이지에도 공지가 보임
....
//$notice_count++; //다음 페이지에도 공지가 보임
i++을 제거 하는 순간 공지사항 노출이 전혀 안됩니다..
if($bo_table =='free') 이런식으로 가져오면..
[전체] [메뉴1] [메뉴2] [메뉴3] 가 테이블 자체는 모두 같은 테이블 이기 때문에
저 if문을 전부타 탈꺼같은데...아닌가요?..
1. 우선, 다음의 팁을 적용하시고
* 분류 선택시 공지사항 상단 노출 => http://www.gnuwiz.com/board_tip/43
2. 그리고 제가 말씀드린 것을 상황에 맞게 적용하여야 할 것 같습니다.
저도 많이 헤메이다가 지금은 잘 적용하고 있습니다.
바로 적용할 수 있는 도움이 되지 못해서 미안합니다....ㅜㅜ
참고해볼만한 자료가 없을까요..
제가 올린 소스가 올려주신 팁을 적용한 상태입니다..
적용하신 소스를 보여주시긴 어려우실까요?..
list.skin.php 에서 $list[$i]['is_notice'] 이 값이 안넘어오는거같은데... i++안하고는 방안이 없을까요..
참고해볼 수 있는 글입니다.
* 분류 선택시 공지사항 상단 노출 => http://www.gnuwiz.com/board_tip/43
답변을 작성하려면 로그인이 필요합니다.