글목록 수가 적으면 페이징 사라짐
본문
안녕하세요
겔러리 게시판에 1페이지당 글이 10개씩 출력되도록 하고있습니다.
현재 게시판에 글이 하나밖에 없어서 페이징이 표시되지 않는데요
이때문에 페이징 밑으로 들어가야할 관리자 버튼들이 글목록을 치고 올라옵니다.
게시글이 하나밖에 없어도 페이징을 항상 표시하는 방법이 있을까요?
페이징이 안나오고 관리자 버튼들이 Ul을 침범하고 있음.
list.php 에서는
echo write page 함수를 사용하고 있고
테마의 common.lib.php 쪽에서 바꿔야 할것 같습니다.
도움 부탁드립니다. 감사합니다.
// 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
//$url = preg_replace('#&page=[0-9]*(&page=)$#', '$1', $url);
$url = preg_replace('#&page=[0-9]*#', '', $url) . '&page=';
$str = '';
if ($cur_page > 1) {
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
}
$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) $str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$str .= '<a href="'.$url.$k.$add.'" class="pg_page">'.$k.'<span class="sound_only">페이지</span></a>'.PHP_EOL;
else
$str .= '<span class="sound_only">열린</span><strong class="pg_current">'.$k.'</strong><span class="sound_only">페이지</span>'.PHP_EOL;
}
}
if ($total_page > $end_page) $str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;
if ($cur_page < $total_page) {
$str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
}
if ($str)
return "<nav class=\"pg_wrap\"><span class=\"pg\">{$str}</span></nav>";
else
return "";
}
// 페이징 코드의 <nav><span> 태그 다음에 코드를 삽입
function page_insertbefore($paging_html, $insert_html)
{
if(!$paging_html)
$paging_html = '<nav class="pg_wrap"><span class="pg"></span></nav>';
return preg_replace("/^(<nav[^>]+><span[^>]+>)/", '$1'.$insert_html.PHP_EOL, $paging_html);
}
// 페이징 코드의 </span></nav> 태그 이전에 코드를 삽입
function page_insertafter($paging_html, $insert_html)
{
if(!$paging_html)
$paging_html = '<nav class="pg_wrap"><span class="pg"></span></nav>';
if(preg_match("#".PHP_EOL."</span></nav>#", $paging_html))
$php_eol = '';
else
$php_eol = PHP_EOL;
return preg_replace("#(</span></nav>)$#", $php_eol.$insert_html.'$1', $paging_html);
}
!-->
답변 2
if($total_page==1 or $total_page==0){
echo "";
}else{
페이징
}
전체페이지가 1이거나 없을때는 페이징이 뿌려지지않게하시고
전체페이지가2이상이면 뿌려지겠끔하는거죠
if ($total_page >= 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
현재 페이지가 1이거나 1이상이어도 페이징을 표시하게 위와같이 수정하여 해결하였습니다.
힌트 감사합니다.
답변을 작성하시기 전에 로그인 해주세요.