페이징 스킨에 대한 단상 정보
페이징 스킨에 대한 단상본문
페이징을 스킨으로 해달라는 글을 본 적이 있어 그냥 끄적겨려 봤습니다...
get_paging 함수가 스트링이 아니라 array를 만들게 해야 하지 않을까 생각이 들구요...
<?
// 현재페이지, 총페이지수, 한페이지에 보여줄 행, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
global $g4_navi;
$g4_navi = array();
if ($cur_page > 1) {
$g4_navi[] = "<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 ($end_page >= $total_page) $end_page = $total_page;
if ($start_page > 1) $g4_navi[] = "<a href='" . $url . ($start_page-1) . "{$add}'>이전</a>";
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$g4_navi[] = "<a href='$url$k{$add}'><span>$k</span></a>";
else
$g4_navi[] = "<span class='navi_cur_page'>$k</span>";
}
}
if ($total_page > $end_page) $g4_navi[] = "<a href='" . $url . ($end_page+1) . "{$add}'>다음</a>";
if ($cur_page < $total_page) {
//$str .= "[<a href='$url" . ($cur_page+1) . "'>다음</a>]";
$g4_navi[] = "<a href='$url$total_page{$add}'>맨끝</a>";
}
}
?>
<?
// 글자보다 이미지로 표현하기 원한다면
$pattern = array('/처음/', '/이전/', '/다음/', '/맨끝/');
$replace = array('<img src="path/start.gif" />', '<img src="path/prev.gif" />', '<img src="path/next.gif" />', '<img src="path/end.gif" />');
preg_replace($pattern, $replace, $g4_navi);
?>
간단하게 그대로 쓰려면
<!-- 페이징 스킨 시작 -->
<?=implode(' ', $g4_navi)?>
<!-- 페이징 스킨 끝 -->
이렇게 하면 될 것 같고, 혹 복작하게 원하는 스타일로 하려면 다음과 같은 방식으로 하면 되지 않을까...
<!-- 페이징 스킨 시작 -->
<style>
.navi_cur_page {
font-weight: bold;
}
.navi_page {
}
</style>
<table cellspacing='0'cellpadding='0' align='center' border='0'>
<tr>
<? for ($i = 0, $cnt=count($g4_navi); $i < $cnt; $i++) {
if (preg_match('/<span class="navi_cur_page">[0-9]+<\/span>/i', $g4_navi[$i])) { ?>
<td class="navi_cur_page"><?=$g4_navi[$i]?></td><?=($i!=$cnt-1)?"<td width='1' bgColor='#D5D5D5'></td>":""?>
<? } else { ?>
<td class="navi_page"><?=$g4_navi[$i]?></td><?=($i!=$cnt-1)?"<td width='1' bgColor='#D5D5D5'></td>":""?>
<? } ?>
</tr>
</table>
<!-- 페이징 스킨 끝 -->
2
댓글 2개
