네이버 페이징 따라하기

네이버와 비슷하게 동작하는 페이징을 만들어 보았습니다.
꼭 필요하신 분들만 사용하시길...
설명은 아래의 그림으로 대신합니다.

■ 설명

 1 페이지부터 10 페이지까지 나와있습니다.



 이제 10 페이지를 클릭합니다.



 자동으로 6 페이지부터 15 페이지까지 출력됩니다.
 


■ 사용법

lib/common.lib.php 파일에서 get_paging() 함수를 다음과 같이 수정합니다. (대략 18번 줄)
======================================================================================

// 현재페이지, 총페이지수, 한페이지에 보여줄 행, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
    $str = "";
    if ($cur_page > 1) {
        $str .= "<a href='" . $url . "1{$add}'>처음</a>";
        //$str .= "[<a href='" . $url . ($cur_page-1) . "'>이전</a>]";
    }

     // 기존 코드 주석처리    
     // $start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
     // $end_page = $start_page + $write_pages - 1;

     // 새로 추가된 코드
     if ($cur_page <= floor($write_pages/2)) {
          $start_page = 1;
          $end_page = $write_pages;
     }
     else {
          $start_page = $cur_page - floor($write_pages/2) + 1;
          if ($total_page-$start_page < $write_pages) {
               $start_page = $total_page-$write_pages+1;
               if ($start_page<1) $start_page = 1;
          }
          $end_page = $cur_page + floor($write_pages/2);
     }

    if ($end_page >= $total_page) $end_page = $total_page;

    if ($start_page > 1) $str .= " &nbsp;<a href='" . $url . ($start_page-1) . "{$add}'>이전</a>";

    if ($total_page > 1) {
        for ($k=$start_page;$k<=$end_page;$k++) {
            if ($cur_page != $k)
                $str .= " &nbsp;<a href='$url$k{$add}'><span>$k</span></a>";
            else
                $str .= " &nbsp;<b>$k</b> ";
        }
    }

    if ($total_page > $end_page) $str .= " &nbsp;<a href='" . $url . ($end_page+1) . "{$add}'>다음</a>";

    if ($cur_page < $total_page) {
        //$str .= "[<a href='$url" . ($cur_page+1) . "'>다음</a>]";
        $str .= " &nbsp;<a href='$url$total_page{$add}'>맨끝</a>";
    }
    $str .= "";

    return $str;
}

======================================================================================

|

댓글 5개

위소스는 네이버처럼 클릭된 페이지가 가운데로 오게 하는 소스입니다.
위에 그림처럼 숫자에 네모를 넣으시려면 스타일시트랑 게시판리스트스킨을 수정하여야합니다
아리송알님 .....
감사합니다.
페이지 중앙에 가게하기
얼떨결에 알아낸 팁인데요.
위처럼 하면 페이지 표시 수가 홀수개일 때 한개가 모자라게 표시가 되더라구요.
그래서 조금 건드려 봤습니다^^;;

// 새로 추가된 코드
if ($cur_page <= floor($write_pages/2)) {
$start_page = 1;
$end_page = $write_pages;
}
else {
$start_page = $cur_page - floor($write_pages/2) + 1; // 여기서 +1을 빼면 홀수개 적용이 됩니다.
if ($total_page-$start_page < $write_pages) {
$start_page = $total_page-$write_pages+1;
if ($start_page<1) $start_page = 1;
}
$end_page = $cur_page + floor($write_pages/2);
}
와~ 잘됩니다!! 최고!
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

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

+
제목 글쓴이 날짜 조회
15년 전 조회 3,706
15년 전 조회 3,668
15년 전 조회 4,575
15년 전 조회 1.3만
16년 전 조회 4,776
16년 전 조회 3,810
16년 전 조회 5,645
16년 전 조회 5,627
16년 전 조회 1만
16년 전 조회 6,773
16년 전 조회 4,364
16년 전 조회 5,046
16년 전 조회 4,951
16년 전 조회 5,737
16년 전 조회 6,531
16년 전 조회 4,551
16년 전 조회 8,978
16년 전 조회 5,050
16년 전 조회 4,743
16년 전 조회 3,502
🐛 버그신고