[G5] 댓글(코멘트) 페이징 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

그누보드 [G5] 댓글(코멘트) 페이징

페이지 정보

댓글 0건 조회 1,028회 수정일 17-12-01 06:32

본문

댓글에 독립적인 페이징을 넣어서 댓글이 다수 등록된 경우 이용에 편리성을 제공합니다.


1. 그누보드5 / lib / common.lib.php   아래 내용 추가

// 코멘트 페이징을 위해 추가
function get_comment_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) . ''; 

    $str = ''; 
    if ($cur_page > 1) { 
        $str .= '<a href="'.$url.'1'.$add.'#CommentTop" 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.'#CommentTop" 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.'#CommentTop" 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.'#CommentTop" class="pg_page pg_next">다음</a>'.PHP_EOL; 

    if ($cur_page < $total_page) { 
        $str .= '<a href="'.$url.$total_page.$add.'#CommentTop" class="pg_page pg_end">맨끝</a>'.PHP_EOL; 
    } 

    if ($str) 
        return "<nav class=\"pg_wrap\"><span class=\"pg\">{$str}</span></nav>"; 
    else 
        return ""; 
}



2-1. 그누보드5 / skin / board / basic / view_comment.skin.php

<!-- 댓글 시작 { -->
<section id="bo_vc">
    <h2>댓글목록</h2>
    <?php
    $cmt_amt = count($list);
    for ($i=0; $i<$cmt_amt; $i++) {

를 아래와 같이 변경

<!-- 댓글 시작 { -->
<div id="CommentTop"></div>
<section id="bo_vc">
    <h2>댓글목록</h2>
    <?php
    if(!$c_rows) $c_rows = 10;  // 표시댓글수가 지정되지 않았을경우 기본값 20
    /* ?>
    <div>
        <div style="text-align:right;">
            <form method="post" action="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&wr_id=<?php echo $wr_id; ?>">
                표시댓글수<input type="number" value="<?php echo $c_rows; ?>" name="c_rows" style="width:50px;">
                <input type="submit" value="설정">
            </form>
        </div>
    </div>
    <?php
    */
    // 코멘트 번호 계산식 및 페이징 표시
    $c_total_count = count($list); // 전체 코멘트 수 할당  // 보여줄 개수
    if ($c_total_count != 0) {
        $c_total_page  = ceil($c_total_count / $c_rows);  // 전체 페이지 계산
        if (!$c_page) $c_page = $c_total_page; // 페이지가 없으면 첫 페이지 (1 페이지)
        $c_from_record = ($c_page - 1) * $c_rows; // 시작 코멘트 구하기
        $c_last_record = $c_from_record + $c_rows; // 끝 코멘트 구하기
        if($c_last_record > $c_total_count) { // 마지막 코멘트가 전체 코멘트 보다 크면 전체 코멘트로 할당
            $c_last_record = $c_total_count;
        }
    }
    // 페이징 처리 함수 및 표시
    $c_pagelist = get_comment_paging($c_rows, $c_page, $c_total_page, G5_BBS_URL."/board.php?bo_table=".$bo_table."&c_rows=".$c_rows."&wr_id=".$wr_id."&c_page=");
    //if ($c_pagelist) { echo $c_pagelist; }
    
    $cmt_amt = $c_last_record;
    $i = $c_from_record;
    for ($i; $i<$cmt_amt; $i++) {



2-2. 그누보드5 / skin / board / basic / view_comment.skin.php

</section>
<!-- } 댓글 끝 -->

를 아래의 내용으로 변경

    <?php
    if ($c_pagelist) { echo $c_pagelist; }
    ?>
    <?php /* ?>
    <div>
        <div style="text-align:right;">
            <form method="post" action="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&wr_id=<?php echo $wr_id; ?>">
                표시댓글수<input type="number" value="<?php echo $c_rows; ?>" name="c_rows" style="width:50px;">
                <input type="submit" value="설정">
            </form>
        </div>
    </div>
    <?php */ ?>
</section>
<!-- } 댓글 끝 -->


2-3. 그누보드5 / skin / board / basic / view_comment.skin.php

    <input type="hidden" name="comment_id" value="<?php echo $c_id ?>" id="comment_id">

를 아래와 같이 내용 추가

    <input type="hidden" name="comment_id" value="<?php echo $c_id ?>" id="comment_id">
    <input type="hidden" name="c_page" value="<?php echo $c_page ?>">


3. 그누보드5 / bbs / write_comment.php

goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr['wr_parent'].'&amp;'.$qstr.'&amp;#c_'.$comment_id);

를 아래의 것으로 변경

goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr['wr_parent'].'&amp;page='.$page.'&amp;c_page='.$c_page.'&amp;'.$qstr.'#c_'.$comment_id);


참고자료
https://sir.kr/g5_tip/3336
https://sir.kr/qa/206990
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 367건 1 페이지
기술자료 목록
번호 제목
367 그누보드
366 그누보드
XE -> 그누보드5 변경 v7 ( update. 2018-06-12 13:13 ) Hit.86
365 그누보드
364 그누보드
363 그누보드
362 그누보드
[G5] XpressEngine 와 그누보드5 테이블 비교 ( update. 2018-05-25 14:05 ) Hit.141
361 그누보드
[G5] 글 가장 위로 순서 변경하기 ( update. 2018-05-08 12:40 ) Hit.184
360 그누보드
359 그누보드
358 그누보드
357 그누보드
356 그누보드
[G4] 스팸게시글 한방에 삭제하기 ( update. 2018-03-23 15:54 ) Hit.593
355 그누보드
[G4/G5] 현재 접속자 환경설정과 연동하기 ( update. 2018-03-02 09:32 ) Hit.738
354 그누보드
353 그누보드
[G5] 서버 이전후 글쓰기 안될때 ( update. 2018-02-05 19:35 ) Hit.1117
352 그누보드
[G5] 그누컨텐츠 설치하기 ( update. 2018-03-07 06:06 ) Hit.974
351 그누보드
[G5/Amina] 스팸게시글 한방에 삭제하기 ( update. 2018-06-07 12:45 ) Hit.1152
350 그누보드
[G5] select 로 추출하는 최신게시글 ( write. 2018-01-19 ) Hit.1189
349 그누보드
348 그누보드
[G5] 동창회 (동문회) 주소록 연동 회원관리 ( update. 2018-01-17 12:50 ) Hit.1021
347 그누보드
346 그누보드
[G5] 스마트폰과 PC에서 다른 테마 적용하기 ( update. 2018-05-31 03:51 ) Hit.1011
345 그누보드
[G5] 최고관리자 자동로그인 허용 ( write. 2018-01-06 ) Hit.972
344 그누보드
343 그누보드
[G5] 회원가입시 성별 받기 ( update. 2018-01-12 10:37 ) Hit.983
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
2,399
어제
2,955
최대
3,174
전체
4,060,970

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.