깃헙 형식 페이징입니다.
이런 페이징을 한 번 써보고 싶어서 급하게 수정해 봤는데 어떤 오류가 있는지 모르겠네요... ㅎㅎ

페이지 번호를 쭉 나열하는 게 아니라, [Newer] [Older] 두 개 버튼만 제공합니다.
▒1페이지에서 [Newer] 버튼은 클릭할 수 없습니다.
▒마지막 페이지에서 [Older] 버튼은 클릭할 수 없습니다.
▒클릭할 수 있는 버튼은 btn-active 로 스타일을 정의합니다.
▒클릭할 수 없는 버튼은 btn-disabled 로 스타일을 정의합니다.
▒주의! 이 팁을 그대로 사용하시면 관리자 화면 등 전체 화면의 페이징이 변경됩니다.
lib/common.lib.php
[code]// 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$url = preg_replace('#(&)?page=[0-9]*#', '', $url);
$url .= substr($url, -1) === '?' ? 'page=' : '&page=';
$str = '';
$end_page = $write_pages - 1;
if ($end_page >= $total_page) $end_page = $total_page;
$btn_class = 'disabled';
if ($cur_page > 1) {
$str .= '<a href="'.$url.($cur_page-1).$add.'" class="pg-prev">'.PHP_EOL;
$btn_class = 'active';
}
$str .= '<span class="btn btn-'.$btn_class.'">Newer</span>'.PHP_EOL;
if ($cur_page > 1) $str .= '</a>'.PHP_EOL;
$btn_class = 'disabled';
if ($cur_page < $end_page) {
$str .= '<a href="'.$url.($cur_page+1).$add.'" class="pg-next">'.PHP_EOL;
$btn_class = 'active';
}
$str .= '<span class="btn btn-'.$btn_class.'">Older</span>'.PHP_EOL;
if ($cur_page < $end_page) $str .= '</a>'.PHP_EOL;
if ($str)
return '<nav class="pg_wrap"><span class="pg">'.$str.'</span></nav>';
else
return "";
}[/code]
실제 적용한 샘플입니다.

Stylesheet
[code].pg_wrap .btn {font-weight:bold}
.btn {display:inline-block;margin:0;padding:0 10px;height:44px;line-height:42px;border-radius:13px;font-size:1.4rem}
.btn-active {background:#006cff;color:#fff}
.btn-disabled {background:#dde0e3;color:#b4bbc1}[/code]
font-size 단위는 사이트에 맞게 변경하시면 됩니다.
댓글 3개
게시글 목록
| 번호 | 제목 |
|---|---|
| 24149 | |
| 24140 | |
| 24133 | |
| 24125 | |
| 24119 | |
| 24109 | |
| 24105 | |
| 24101 | |
| 24093 | |
| 24089 | |
| 24077 | |
| 24074 | |
| 24071 | |
| 24070 | |
| 24067 | |
| 24056 | |
| 24050 | |
| 24046 | |
| 24043 | |
| 24040 | |
| 24037 | |
| 24036 | |
| 24035 | |
| 24034 | |
| 24021 | |
| 24017 | |
| 24005 | |
| 24002 | |
| 23990 | |
| 23980 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기