네이버 페이징 따라하기 > 그누4 팁자료실

그누4 팁자료실

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

네이버 페이징 따라하기 정보

네이버 페이징 따라하기

본문

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

■ 설명

 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 .= "  <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 .= "  <a href='$url$k{$add}'><span>$k</span></a>";
            else
                $str .= "  <b>$k</b> ";
        }
    }

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

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

    return $str;
}

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

추천
4

댓글 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 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT