최신글에서 공지가 맨위 (혹은 두번째)에 가게 하고 싶어요
본문
최신글을 뽑아올때
게시글에서 공지 체크한것을
맨처음 혹은 두번째로 나오게 하고 싶습니다.
사실 필요한건 두번째 인데요
사이트가 어떻게 하다보니
최신글이 세개 추출되는데 공지사항이 가운데 와야하는 상황이 되어버렸습니다.
공지로 체크해서 게시물에서 맨 위로 올라오는 공지사항이
최신글 2번째로 나오게 할 수 있을까요?
(공지글이 2개이상이면 위에있는게 올라와야 합니다.)
답변 1
공지글만 따로 추출한 뒤, 기존의 최신글 $list 에 끼워넣는 방식입니다.
* lastest.skin.php 상단에 추가
// 게시판 정보를 가져옵니다.
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '{$bo_table}' ");
// 게시판의 공지사항 ID 목록을 가져옵니다.
$bo_notice_array = explode(',', trim($board['bo_notice']));
if (!empty($bo_notice_array)) {
// 가장 최신 공지글(배열의 첫 번째 요소)의 wr_id를 가져옵니다.
$latest_notice_id = $bo_notice_array[0];
// 해당 wr_id로 공지글 정보를 가져옵니다.
$notice_query = "SELECT * FROM {$g5['write_prefix']}{$bo_table} WHERE wr_id = '{$latest_notice_id}'";
$notice = sql_fetch($notice_query);
if ($notice) {
// get_list() 함수를 사용하여 공지글 정보를 가공합니다.
$notice = get_list($notice, $board, $latest_skin_url, $subject_len);
// 공지글임을 표시합니다.
$notice['is_notice'] = true;
// $list 배열을 조작하여 공지글을 두 번째 위치에 삽입합니다.
array_splice($list, 1, 0, array($notice));
// $list 배열의 길이를 원래대로 유지합니다 (보통 최대 출력 개수만큼)
$list = array_slice($list, 0, $rows);
}
}
답변을 작성하시기 전에 로그인 해주세요.