페이징 스킨에 대한 단상 > 그누4 팁자료실

그누4 팁자료실

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

페이징 스킨에 대한 단상 정보

페이징 스킨에 대한 단상

본문

페이징을 스킨으로 해달라는 글을 본 적이 있어 그냥 끄적겨려 봤습니다...
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개

© SIRSOFT
현재 페이지 제일 처음으로