최신 글
최신 댓글
Hot 조회수
게시물이 없습니다.
Hot 댓글수
게시물이 없습니다.

  통계

구글광고 등 삽입
운영게시판 운영자가 사용하는 공간 입니다.

역순게시판 만들기 소스

  • AD 이만성
  • 조회 17692
  • 2013.12.31 21:46

리스트 정렬순서를 역순으로 했을때 최신글 뽑아오기 문제입니다.

리스트 페이지에 최신글을 적용시켜서 사용중입니다.

리스트 페이지는 날짜이전것 부터 순으로 정렬 (기본정렬의 역순)이 되어있고

최신글도 마찬가지로 날짜이전것부터 정렬이 되어있습니다.

여기서 공지사항이 추가되면 공지사항부터 최신글에 뽑아지게 하고싶은데요




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);
 ?>

를 추가하여 공지사항을 뽑아오게 했고



lib/latest.lib.php 에는

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

wr_num 역순으로 최신글을 뽑아오게 했습니다.



스샷에서 처럼 공지사항을 맨위로 두었을때 최신글에 공지사항이 안뜨는게 문제인데요

간단한 해결법좀 부탁드립니다 ㅜ.ㅜ

 

---------------------------

위 멀티소트 코드는 최신글로 추출한 목록에 공지사항이 들어있을 때 사용하는 것입니다
예를들어 최신글 10개를 출력하는데 그 중 공지사항이 없으면 당연히 나올 수 없는 것입니다

공지글을 무조건 나오게 하려면
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=16131
여기를 참고해서 공지글만 따로 추출하고 뒷부분에 공지글 갯수를 뺀 값만큼 일반글을 추출하는
코드를 만들어야 가능합니다

팁게시판에 있을듯한 내용같습니다만..

------------------------------

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=16131

(내용)

공지만 최근게시물/최신게시물에 출력하기

공지를 먼저출력하고 나머지를 출력하는 것이 아닌 공지만 최근게시물에서
출력하고 싶은 경우가 많은 것 같군요

아래글에 어떤 분이 올려놓은 팁이 있긴 합니다만
처음부터 공지만 추출하려면 new.php 7번 행을 다음과 같이 하면 됩니다

$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
               where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'  and INSTR(b.bo_notice, a.wr_id) >0 ";

추출해 오는 갯수는 관리자메뉴의 최근게시물 라인수 에서 설정
==============================================================================

최신글에서 공지만 출력하기 latest.lib.php 23행 수정

if($options=='notice'){
  $notice_rows=count( split("\n", trim($board[bo_notice]) ) );
  if( $rows> $notice_rows) $rows= $notice_rows;
  $sql = " select * from $tmp_write_table where wr_is_comment = 0 and INSTR('$board[bo_notice]', wr_id)>0 order by wr_num limit 0, $rows ";
}
else
  $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";


1. latest(스킨, table, rows, subject_len, "notice") <-- 마지막에 options을 주어 호출하면 됨
2. rows=5 로 함수 호출, 공지갯수=3 이면 3개만 출력, rows=3 로 함수 호출, 공지갯수=5 이면 3개만 출력
3. 최신글이라고 하지만 공지갯수가 적으면 아주 오래된 날짜의 공지도 출력 되는 것은 고려하지 않음

 

------------------------------------------------------------------

최근게시물 역순으로 보여주기

검색을 해보니 lib파일을 변경하라는 이야기가 많이 있는데
그렇게하면 귀찮고 번거롭기도 해서
제가 사용한 방법 올립니다
최근게시물 스킨에서 반복되는 부분을 변경하면 되는데요

최근게시물 basic 스킨을 예로들면
latest.skin.php 파일에서

<? for ($i=0; $i<count($list); $i++) { ?>

이렇게 되어있는 부분을

<? for ($i=count($list); $i>=0; $i--) { ?>

이렇게 바꾸면 됩니다. 잘 쓰시길..

 

----------------------------------------------------

리스트의 번호를 역순으로 하고 싶습니다.

아래는 리스트에서 번호가 나오는 부분입니다.
여기서 번호를 역순으로 나오게 하고 싶습니다.
아래에서
 echo $list[$i][num]; 을 
 echo $i + 1 ; 로 하면,
페이지 내에서만 역순으로 나오고 다음페이지에서는 다시 1번부터 시작합니다.
리스트 전체를 역순으로 하면서도 게시판전체의 번호는 연속으로 나오게 하고 싶습니다.

고수님들의 좋은 가르침을 기다립니다.
-----------------------
    <?
    for ($i=0; $i<count($list); $i++) {
        $bg = $i%2 ? 0 : 1;

            if ($list[$i][is_notice]) // 공지사항
                echo "<b>공지</b>";
            else if ($wr_id == $list[$i][wr_id]) // 현재위치
                echo "<span class='current'>{$list[$i][num]}</span>";
            else
                echo $list[$i][num];
    }
  ?>

 

------이런 건 뭐 조금만 머릴 굴려보면....
$list[$i][num]=$total_count-$list[$i][num]+1;
이렇게 for문 다음에

---------------------------

리스트 초기화면에서 쓴시간의 역순으로       

리스트의 초기화면부터 시간의 역순으로 보여주게 하고 싶습니다.
달리 말하면 초기 리스트화면에서부터 먼저 쓴 글이 위에 나오게 하고 싶습니다.
아래를 어떻게 해야하는가요?

for ($i=0; $i<count($list); $i++) {

그렇지 않으면 다른 방법이 있나요?

 

--------------

현재 페이지에 있는 글을 말씀하시는건지,
게시판에 있는 글 전체를 말하는지 잘 모르겠습니다.
게시판에 있는 글 전체에서 시간순이면 게시판관리자 들어가셔서

리스트 정렬 필드 란에서
날짜로 정렬이 가능합니다.

현 페이지만 정렬하시려면
$max = count($list)-1;
for ($i=$max; $i<=0; $i--) {


}

정도로 하시면 될 듯 하네요.

--------------------------

서누니님!! 감사합니다.
일단은
$max = count($list)-1;
for ($i=$max; $i<=0; $i--) {
면 될 것 같은데,

------------------------
글 전체에서 시간순이면 게시판관리자 들어가셔서

리스트 정렬 필드 란에서
날짜로 정렬이 가능합니다.
------------------------
이부분을 찾지 못하겠어요.

게시판관리자에서 리스트정렬필드가 어디있지요?

트위터 페이스북 다음요즘 싸이공감 네이트온 쪽지 구글 북마크 네이버 북마크
AD 이만성
게시판 리스트 역순 소스
list.skin.php
    for ($i=0; $i<count($list); $i++) {
$list[$i]['num']=$total_count-$list[$i]['num']+1;  // 번호만 역순
----------------------------------------
$cnt_no = $ttl_cnt--;

<?=$ttl_cnt--;?>
------------------------------------
한 페이지 글을 역순으로 정렬하되,
오래된글이 다음페이지 갈수있게 정렬이 가능할까요?

만약 한페이지에 5개의 글이 나오고 10개의 글이 있다면 (최신글이 나중번호)
그누보드 설정부분은 원래대로 돌리시구요.
스킨 부분에 보시면 거의 fot($i=0 ; $i < count($list); $i++ ) 로 되있을꺼에요
이걸 for ( $i = count($list); $i > 0; $i = $i-1 )
로 바꿔보세요.
for ( $i = count($list)-1; $i >= 0; $i = $i-1 ) 으로 바꿔줄 필요가 있었습니다~
정렬은 그대로 가면서 줄번호만 바꿀 생각을 왜 못했었는지..
답변감사드립니다~~