네이버 페이징 따라하기 정보
네이버 페이징 따라하기본문
네이버와 비슷하게 동작하는 페이징을 만들어 보았습니다.
꼭 필요하신 분들만 사용하시길...
설명은 아래의 그림으로 대신합니다.
■ 설명
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);
}