반응형 - 게시판 페이징 오류 질문입니다.

반응형 - 게시판 페이징 오류 질문입니다.

QA

반응형 - 게시판 페이징 오류 질문입니다.

답변 1

본문

안녕하세요, 그누보드를 통해 배우고 있는 학생입니다.

다름이 아니라 페이징 오류를 해결하지 못하고 있어서 질문 올립니다.

 

pc 버전의 게시판에서는 페이지 숫자가 출력이 잘 되는데 모바일 버전에서는 숫자 출력이 전혀 되지 않고 있습니다.

기존의 css에서 pg.wrap이라던가 pg_current에서는 글자 색상 등이 정상적으로 적혀있고, 테스트로 background의 색상을 변경했을 때 출력된 것도 확인했습니다.

그런데 color 색상을 변경해봤을 때 출력이 전혀 안 되어서 어떤 숫자 코드가 누락이 되어없는 건가 싶기도 하더군요..

 

/lib/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);
    $url .= substr($url, -1) === '?' ? 'page=' : '&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 "";
}
이 부분도 정상적으로 짜여있는 것 같은데 아직 제 역량으로는 해결방안을 찾는 게 부족합니다.

이 부분을 해결하는 데 있어서 도와주신다면 정말 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 1

'반응형' 에서는,

PC 와 모바일에서 보이는 부분이 같습니다.

 

PC 에서 페이징을 출력하는 부분에서부터, 검토를 해야 됩니다.

(지금의 소스는 관련이 없을 가능성이 큽니다.)

 

 

/skin/board/[사용스킨]/list.skin.php 의

<?php echo $write_pages; ?>

에 다른 문구를 넣었을 때

모바일 기기에서, 그리고 PC 브라우저의 화면너비를 줄인 경우 각각 정상적으로 나오는 지 확인합니다.

 

여기서부터 테스트/디버깅을 해가면서 문제의 원인을 찾아야 됩니다. (또는 최소한 문제의 지점(파일, 라인))

문제의 원인을 찾게되면 해결하기는 어렵지 않은 경우가 많습니다.

느낌과 감으로 원인을 상정하는 방식으로 하면, (ex. "어떤 숫자 코드가 누락이 되어없는 건가 싶기도")

해결책을 찾기 어려운 경우가 많습니다.

 

 

감사합니다, 마르스컴퍼니 님.
무사히 오류를 찾았지만, 느낌과 감으로 원인을 상정하는 방식으로 하면 오류의 해결책을 찾기 어렵다는 말씀에 다시 한번 자세를 고쳐먹게 되는 것 같습니다.
감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 115
© SIRSOFT
현재 페이지 제일 처음으로