특정 게시물만 원하는 순서대로 최신글 추출하기 - 최신글스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

최신글스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

특정 게시물만 원하는 순서대로 최신글 추출하기

관리자 20-04-16 11:35

특정 게시물을 최신글로 추출하기 관련 팁을 올린 적이 있었습니다.

https://gnustudy.com/bbs/board.php?bo_table=skin_latest&wr_id=23 


위 팁은 단순히 체크한 게시물을 출력했었는데 이번엔 출력 순서까지 지정해보겠습니다.



수정파일1 : lib/latest.lib.php 


기본 최신글 함수를 복사해서 함수명을 변경한 후 같은 파일 하단에 새로 추가합니다.

아래 예제에서는 함수명을 function latest_main 으로 변경했습니다.


일단 기본 함수 전체를 복사해서 추가하신 다음 아래 설명해드린 부분만 변경하세요.

그누보드 버전마다 최신글 함수가 조금씩 차이가 있어서 전체 코드는 올려드리지 않으니

현재 사용하시는 버전에 있는 함수를 복사해서 사용하시면 됩니다.

수정해야 할 부분은 빨간색으로 표기해놨습니다.


// 특정 게시물 원하는 순서대로 최신글 추출

// $cache_time 캐시 갱신시간

function latest_main($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='')

{

일단 시작 부분에서 함수명을 latest_main 으로 변경.

...............................................................

...............................................................

그리고 함수 내용 중간쯤에 아래 코드가 있는데

$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 order by wr_num limit 0, {$rows} ";


위 코드를 이렇게 변경합니다.

$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and wr_1 > '0' order by wr_1+0 desc limit 0, {$rows} ";


.............................

.............................

?>


새로 변경한 이 부분에서 desc 는 입력 값이 높은 게시물부터 출력되고

and wr_1 > '0' order by wr_1+0 desc


이렇게 asc 로 변경하면 낮은 값부터 출력됩니다.

and wr_1 > '0' order by wr_1+0 asc


desc, asc 변경시 바로 반영되지 않으니 환경설정 > 캐시파일 일괄삭제 클릭 후 확인.


wr_1+0 이렇게 뒤에 0을 더해준 이유는 여분필드 타입이 문자형이라서 숫자형으로 변환한 것입니다.




수정파일2 : 게시판스킨 write.skin.php 


여분필드 1번을 활용해서 출력 순서 값을 입력합니다. 숫자로 입력하세요.

여기서 입력한 순서대로 출력 됩니다. 빈 값으로 두고 글을 등록하면 최신글로 출력되지 않습니다.

관리자만 입력할 수 있게 해놨습니다.


<?php if ($is_admin) { ?>
<div class="write_div">
    <label for="wr_1" class="sound_only">메인출력</label>
    <input type="text" name="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" class="frm_input" size="10" placeholder="출력순서">
</div>
<?php } ?>
 



수정파일 3 : 최신글이 출력되는 파일 (index.php) 


최신글을 출력할 때 기본적으로 이렇게 출력하는데


echo latest("basic", notice, 5, 25);


latest 출력 함수를 새로 추가한 함수명으로 교체합니다.


echo latest_main("basic", notice, 5, 25);


최신글 스킨 자체에서는 수정할 부분이 없습니다. 아무 스킨이나 사용해도 됩니다.

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.