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

본문
그누보드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++))이 시작되는 위치를 직접 찾아 그 바로 아래에 쿼리 코드를 삽입해야 합니다.
참고자료
기타 참고자료
- 이전글그누보드 특정 게시판 본문 내용 필수 입력 제약 해제 방법 26.09.24
- 다음글그누보드 게시판 오래된 글 댓글 작성 제한 방법 26.09.24
댓글목록
등록된 댓글이 없습니다.