BOARD

팁·활용

그누보드 게시판 목록에 마지막 댓글 정보 출력하기

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 68회 작성일 26-09-24 01:31

본문

그누보드 게시판 목록에 마지막 댓글 정보 출력하기

그누보드5 게시판 목록(list.skin.php)에서 마지막 댓글의 작성자, 날짜, 내용을 동적으로 불러와 출력하거나 새 댓글 등록 시 C 아이콘을 표시하는 방법을 확인할 수 있습니다.

그누보드 게시판 목록에 마지막 댓글 정보 출력하기

그누보드 게시판 목록(list.skin.php)에서 각 게시글의 마지막 댓글 작성자, 작성일, 내용을 출력하려면 반복문 내부에 데이터베이스 조회 쿼리를 추가해야 합니다.

1. 수정 파일 위치

  • 수정할 파일: list.skin.php (사용 중인 게시판 스킨 폴더 내)

2. 코드 추가 방법

list.skin.php 파일 내에 있는 아래 반복문 코드를 찾습니다.

for ($i=0; $i<count($list); $i++) {

위 반복문 시작 코드 바로 밑에 마지막 댓글 정보를 조회하는 SQL 쿼리 코드를 추가합니다.

$row_last = sql_fetch(" select * from $write_table where wr_parent = '{$list[$i]['wr_id']}' and wr_is_comment = 1 order by wr_datetime desc limit 1 ");

3. 출력 원하는 위치에 태그 삽입

목록 내부에서 작성자, 날짜, 내용을 표시하고 싶은 위치에 각각 아래 코드를 넣습니다.

  • 작성자 출력: <?php echo $row_last['wr_name']?>
  • 작성일 출력: <?php echo date("y.m.d", strtotime($row_last['wr_datetime']))?>
  • 댓글 내용 출력: <?php echo $row_last['wr_content']?>

4. 주의사항 및 성능 참고

  • 목록 내에서 매 행마다 개별 SQL 쿼리를 실행하므로, 게시글 목록에 노출되는 글이 많을 경우 서버 성능 저하가 발생할 수 있습니다.
  • 특정 커스텀 테마 스킨을 사용하는 경우 스킨 구조에 따라 파일 내 코드의 정확한 위치나 변수명이 다를 수 있으므로 적용 전 스킨 파일을 백업하는 것을 권장합니다.

게시판 목록에 새 댓글 C 아이콘 및 알림 표시하기

그누보드 기본 스킨의 목록 페이지(list.skin.php)에서 새글(N) 아이콘 출력 부분을 수정하여, 새로운 댓글이 등록되었을 때 C 아이콘이나 코멘트 알림을 표시할 수 있습니다. 스킨 버전(구버전 이미지 방식 또는 최근 버전 텍스트/CSS 방식)에 맞춰 코드를 적용합니다.

1. 최근 그누보드 기본 스킨(텍스트 방식) 적용 방법

수정 파일인 list.skin.php에서 기존 새글 아이콘 출력 코드를 찾아 수정합니다.

기존 코드 주석 처리
// if ($list[$i]['icon_new']) echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";
새글 아이콘 및 새 댓글 체크 로직 추가

주석 처리한 바로 밑에 아래 내용을 추가합니다. 24시간 내에 새로운 코멘트가 등록되면 C 아이콘이 출력됩니다.

if ($list[$i]['icon_new']) {
 echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";
} else {
 if ($list[$i]['comment_cnt']) {
 $new_cmt = sql_fetch(" select wr_datetime from {$write_table} where wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 order by wr_id desc limit 1 ");
 if ($new_cmt['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - (24 * 3600)))
 echo "<span class=\"newcmt_icon\">C<span class=\"sound_only\">새댓글</span></span>";
 }
}
스타일시트(style.css) 수정

해당 스킨 폴더 내의 style.css 파일에 아래 코드를 추가합니다. 색상 변경을 원할 경우 color와 background 값을 수정합니다.

#bo_list.bo_tit.newcmt_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ce4bff;background:#f0e3fc;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle}

2. 구버전 스킨(이미지 방식) 적용 방법

구버전의 경우 이미지 파일(icon_new_cmt.gif)을 사용하는 방식을 적용할 수 있습니다.

기존 코드 주석 처리
// if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new'];
이미지 아이콘 출력 코드 추가
if ($list[$i]['icon_new']) {
 echo $list[$i]['icon_new'];
} else {
 if ($list[$i]['comment_cnt']) {
 $new_cmt = sql_fetch(" select wr_datetime from {$write_table} where wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 order by wr_id desc limit 1 ");
 if ($new_cmt['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - (24 * 3600)))
 echo '<img src="'.$board_skin_url.'/img/icon_new_cmt.gif">';
 }
}
  • 사용 중인 스킨 폴더의 img 폴더 안에 새 댓글 아이콘 이미지 파일을 추가해야 합니다.
  • 시간 조건(기본 24시간)을 변경하려면 코드 내 24 * 3600 부분을 수정합니다 (예: 12시간인 경우 12 * 3600).

3. 새글(N) 아이콘과 새 댓글(C) 아이콘을 동시에 표시하는 방법

새글 아이콘이 출력될 때 코멘트 아이콘이 숨겨지지 않고 둘 다 함께 출력되도록 하려면, 기존 새글 아이콘 코드를 주석 처리하지 않고 그대로 둔 채 아래 코드만 추가합니다.

  • 최근 버전(텍스트 방식):기존 새글 아이콘 출력 부분 아래에 아래 코드를 추가하고 style.css에 .newcmt_icon 스타일을 등록합니다.
     if ($list[$i]['comment_cnt']) {
     $new_cmt = sql_fetch(" select wr_datetime from {$write_table} where wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 order by wr_id desc limit 1 ");
     if ($new_cmt['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - (24 * 3600)))
     echo "<span class=\"newcmt_icon\">C<span class=\"sound_only\">새댓글</span></span>";
     }
  • 구버전(이미지 방식):
     if ($list[$i]['comment_cnt']) {
     $new_cmt = sql_fetch(" select wr_datetime from {$write_table} where wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 order by wr_id desc limit 1 ");
     if ($new_cmt['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - (24 * 3600)))
     echo '<img src="'.$board_skin_url.'/img/icon_new_cmt.gif">';
     }

상황별 판단 가이드

  • 내 상황: 게시판 목록(list.skin.php)에서 마지막 댓글의 작성자, 날짜, 내용을 보여주고 싶을 때
  • 선택 기준: 게시물 반복문 내부에 데이터베이스 쿼리를 추가하여 최신 댓글 정보를 실시간으로 조회하는 방식 적용
  • 다음 행동: list.skin.php의 for ($i=0; $i<count($list); $i++) 반복문 하단에 sql_fetch 쿼리를 추가하고, 원하는 위치에 작성자·작성일·내용 출력 태그 삽입
  • 내 상황: 새 댓글이 달렸을 때 목록에 코멘트용 아이콘(C 또는 이미지)을 표시하고 싶을 때
  • 선택 기준: 사용 중인 스킨 버전에 따라 텍스트/CSS 방식 또는 이미지 파일 방식 선택
  • 다음 행동: icon_new 출력부를 수정하여 최근 24시간 이내 작성된 댓글을 체크하는 조건문과 아이콘 출력 코드를 추가

실전 FAQ

Q. 목록에 마지막 댓글 정보를 출력할 때 주의할 점은 무엇인가요?

  • 예외 및 대안: 목록 내 매 행마다 개별 SQL 쿼리를 실행하므로 게시글이 많을 경우 서버 성능 저하가 발생할 수 있습니다. 성능 영향이 우려되는 경우 최신글 캐싱 기법이나 코어 수정 방식을 검토해야 합니다.

Q. 커스텀 테마 스킨을 사용 중인데 안내된 기존 코드를 찾을 수 없습니다.

  • 막히는 지점: 기본 스킨과 구조가 다른 커스텀 테마의 경우 list.skin.php 내 코드 위치나 변수명이 다를 수 있습니다.
  • 대안: 스킨 내에서 반복문(for ($i=0; $i<count($list); $i++))이 시작되는 위치를 직접 찾아 그 바로 아래에 쿼리 코드를 삽입해야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.