최신글에서 공지를 먼저 출력하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

최신글에서 공지를 먼저 출력하기 정보

최신글에서 공지를 먼저 출력하기

본문

질문이 종종 올라오는 것 같아서 팁란에 등록합니다

latest.skin.php 첫부분에 추가하세요

foreach( $list as $key => $value) $tmp_notice[$key] = $value['is_notice'] *100000 + $value['wr_id'];
 array_multisort($tmp_notice, SORT_DESC, $list);
-------------------------------------------------------
10만을 곱해준 이유는 wr_id 값이 큰 순서로 정렬하기 위함입니다(한개 이상의 공지 및공지가 아닌 게시물들의 출력 순서 결정) -- 10 이나 100 등 아무것이나 할 수 있지만 출력할 목록수보다는 커야겠지요
최신글은 출력할 갯수가 많지않으므로 공지가 있는지 없는지 검사 후에 위 스크립트를
실행 하는 루틴은 생략 했습니다

이것이 필요하다면 latest.lib.php에서 get_list() 다음행에 아래 스크립트를 추가한 후 위 스크립트에 조건으로 넣어주면 됩니다 ( if($notice>0 )
      if($list[$i]['is_notice'] ) $notice++;
추천
5
  • 복사

댓글 13개

이 방법을 사용할때, 게시글이 하나도 없는 경우에는 에러를 토해내는군요.. ^^;
더 심각한 문제는 일정갯수(한 10개정도?)의 글이 등록되니 자연스레 내려가버리네요.
마지막 설명을 보면 답은 저절로 나올텐데...

latest.skin.php 추가할 부분

 if($notice>0) {
foreach( $list as $key => $value) $tmp_notice[$key] = $value['is_notice'] *100000 + $value['wr_id'];
 array_multisort($tmp_notice, SORT_DESC, $list);
}
-------------------------------------------------------------------------
latest.lib.php 28행에 추가
 ( $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len); 다음행에 추가)

 if($list[$i]['is_notice'] ) $notice++;

위와 같이 하면 공지사항이 있는지 체크 후 추가 된 부분을 실행하게 되니 게시물이 없거나 공지체크 부분이 없으면 당연히 추가된 부분이 실행 되지 않게 됩니다
=================================================
더 간단한 방법은 latest.skin.php 에서
 if (count($list) >1 ) {
foreach( $list as $key => $value) $tmp_notice[$key] = $value['is_notice'] *100000 + $value['wr_id'];
 array_multisort($tmp_notice, SORT_DESC, $list);
}

이렇게만 해 주어도 되겠지요
게시물이 2개 이상 등록 된 경우에만 실행 되도록 하면..
한달 정도 기간이 지난 후에는 공지글이 풀어져 일반글로 바뀌네요...

흠...  갸우뚱...

새로운 공지 체크글은 되는데 시간이 지나면...풀리는...

변수설정 문제인가...갸우뚱,...

좋은정보 알아갑니다.

궁금한 사항으로 공지글은 시간 지나면 풀리는지 궁금합니다.

예를 들면 최신글 8개가 나오는데 공지 체크글이 9개면 공지글만 나오고 나머지 글은 안나올듯 해서 이 부분 궁금합니다.

공지글 개수 설정하는거나 제한하는 부분이 있을까요?

© SIRSOFT
현재 페이지 제일 처음으로