글목록 수가 적으면 페이징 사라짐

글목록 수가 적으면 페이징 사라짐

QA

글목록 수가 적으면 페이징 사라짐

본문

 

 

안녕하세요

겔러리 게시판에 1페이지당 글이 10개씩 출력되도록 하고있습니다.

현재 게시판에 글이 하나밖에 없어서 페이징이 표시되지 않는데요

이때문에 페이징 밑으로 들어가야할 관리자 버튼들이 글목록을 치고 올라옵니다. 

게시글이 하나밖에 없어도 페이징을 항상 표시하는 방법이 있을까요? 

 

 

e506a74281737e1e72f0c1c63f10efc7_1460456329_8362.png 

페이징이 안나오고 관리자 버튼들이 Ul을 침범하고 있음.

 

e506a74281737e1e72f0c1c63f10efc7_1460456329_4774.png
위처럼 표시되게 하고 싶습니다.

  

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이상이어도 페이징을 표시하게 위와같이 수정하여 해결하였습니다.

힌트 감사합니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 115
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT