코멘트 페이징 처리 > 그누4 팁자료실

그누4 팁자료실

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

코멘트 페이징 처리 정보

코멘트 페이징 처리

본문

안녕하세요.. 쿠츠입니다. ^^

코멘트 페이징 처리를 간절히 원하여 짧은 실력에 뒤지고 뒤져
나스카님께서 그누3버전 페이징의 url을 주셔서 그거 보고 베꼈습니다.

참고 URL : 나스카님 답변 글 - http://www.sir.co.kr/bbs/tb.php/g4_qa/11687
              그누3 코멘트 페이징 - http://sir.co.kr/bbs/tb.php/g3_skin/9220

hun님께서 만드신 것에 약간 수정했습니다.
소스 수정에 대한 양해 없이 작업.배포합니다.(문제가 된다면 삭제하겠습니다.)

관련 파일은 view_comment.skin.php 파일 입니다.

원본 파일은 아래와 같이 되어 있습니다.
-------------------------------------------------------------------------------------------------------------
<?
 if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<script language="JavaScript">
// 글자수 제한
var char_min = parseInt(<?=$comment_min?>); // 최소
var char_max = parseInt(<?=$comment_max?>); // 최대
</script>

<? if ($cwin==1) { ?><table width=100% cellpadding=10 align=center><tr><td><?}?>

<!-- 코멘트 리스트 -->
<?
for ($i=0; $i<count($list); $i++) {
    $comment_id = $list[$i][wr_id];
?>
-------------------------------------------------------------------------------------------------------------

11번째 if문과 14번째줄 for문 사이에 아래 코드를 삽입해 줍니다.
-------------------------------------------------------------------------------------------------------------
<? // 코멘트 번호 계산식 및 페이징 표시
$c_total_count = count($list); // 전체 코멘트 수 할당
$c_rows = 5; // 보여줄 개수
if ($c_total_count != 0){
$c_total_page  = ceil($c_total_count / $c_rows);  // 전체 페이지 계산
if (!$c_page) $c_page = 1; // 페이지가 없으면 첫 페이지 (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_paging($c_rows, $c_page, $c_total_page, "./board.php?bo_table=$bo_table&wr_id=$wr_id&c_page=");
if ($c_pagelist) {
echo "<table width=100% cellpadding=3 cellspacing=1><tr><td align=right>$c_pagelist</td></tr></table>\n";
}
?>
-------------------------------------------------------------------------------------------------------------

14번째 있던 for문을 아래와 같이 수정해 줍니다.
-------------------------------------------------------------------------------------------------------------
<? // 코멘트 표시
$i = $c_from_record;
for ($i; $i<$c_last_record; $i++) {
$comment_id = $list[$i][wr_id];
echo $comment_id;
?>
-------------------------------------------------------------------------------------------------------------

위와 같이 수정하시고 테스트 해보시길..

짧은 실력에 보고 베낀것 입니다.
에러 혹 버그 등이 있거나 간단한 소스가 있다면 직접 수정하시고 수정본 댓글 좀 남겨주세요..

도움이 되셨다면 추천 한방 날려주세요~~

추천 한방 날려주는 센스~
설마 당신은 센스 없는 사람이 아니겠죠?
추천
10

댓글 20개

안되는 실력에 그누 스킨 고치고 있느라 못들어 왔는데 많은 분들이 글을 남겨주셨네요..
글 남겨 주셔서 감사합니다. ^^
답변이 늦었네요..
4월 3일에 질답에 올리셨던데 답변이 부족하셨는지..
view_comment.skin.php에 count($list)라고 처리 되어 있는 부분이 있습니다.
이게 전체 코멘트 수를 가져오는 것이니, 여기에 제어문 붙여 사용하면 코멘트 수를 제한 하실 수 있습니다.
예를 들어 코멘트가 몇개 이상이면, 코멘트 쓰는 부분을 아예 다 안보이게 처리를 한다던지 등등 입니다.

소스를 직접 수정하시는 능력이 되시는 것 같은데 충분히 구현하실 수 있는 것 같으니 노력해 보시길..
음.. 일단 스킨내어서 로직 처리하면 될 듯한데 좀 복잡하고 시간이 걸릴거 같네요..
전체 코멘트에 동일하게 적용하는 것도 무방하시다면, 원본 소스의 view_comment.php의 14번째 줄에 주석처리된 sql 문이 있습니다. 이걸 해제하시고, 아래 sql문을 주석처리하세요.

// 코멘트 출력
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment desc, wr_comment_reply ";
//$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply ";
$result = sql_query($sql);

이렇게 하시면 됩니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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