새 댓글이 등록되었을 때 게시판 목록에 코멘트용 new 아이콘 출력
새글을 등록하면 목록에 new 아이콘이 출력되는 건 그누보드 기본 기능에 있습니다.
이번 내용은 새글이 아닌 새 댓글이 등록되었을 때 목록에 코멘트용 new 아이콘을 출력하는 방법입니다.
그누보드 버전에 따라 코드가 일부 차이가 있어서 최근 그누보드 기본 스킨에 적용하는 예제를 추가로 올려놨습니다.
구 버전은 아이콘 출력 방식이 이미지이고 최근 버전은 텍스트 형태로 변경되었으니 원하는 방식으로 적용하세요.
살펴보니 같은 basic 스킨이더라도 그누보드 버전에 따라서 여러 형태들이 있네요.
if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new'];
if (isset($list[$i]['icon_new'])) echo rtrim($list[$i]['icon_new']);
if ($list[$i]['icon_new']) echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";
현재 사용 중인 스킨에서 아래 예제와 똑같은 부분이 없다고 하더라도 참고해서 동일한 방식으로 적용하시면 됩니다.
수정 파일 : list.skin.php
수정 1.
아래 코드 주석 처리
// if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new'];
수정 2.
수정 1에서 주석 처리한 부분 바로 밑에 다음 내용 추가
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">';
}
}
코멘트용 new 아이콘을 스킨 폴더 img 폴더에 추가.
필요하시면 아래 이미지 사용하세요.
팁 내용에서는 이미지 파일 이름을 icon_new_cmt.gif 로 했습니다.
24시간 내에 새로운 코멘트가 등록되면 아이콘이 출력되도록 설정되어 있습니다.
시간 조건을 변경하고 싶으면 24 * 3600 여기를 수정하세요.
예를 들어 12시간으로 바꾸고 싶으면 12*3600
그누보드 최근 버전에서는 새글 아이콘 출력 방식이 이미지가 아니라 텍스트로 변경되었네요.
최근 버전처럼 텍스트 방식으로 변경하려면 이렇게 수정하세요.
수정 1.
아래 코드 주석 처리
// if ($list[$i]['icon_new']) echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";
수정 2.
수정 1에서 주석 처리한 부분 바로 밑에 다음 내용 추가
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>";
}
}
수정 3.
해당 스킨 style.css 파일에 추가
#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}
색상 변경은 위 코드에서 color:#ce4bff;background:#f0e3fc; 이 부분 컬러 코드 수정하세요.
정상적으로 적용되었다면 이렇게 출력됩니다.
## 참고사항 ##
새글 아이콘이 출력되고 있을 때는 코멘트 new 아이콘이 출력되지 않습니다.
new 아이콘이 2개 뜨면 지저분해질 것 같아서 일부러 그렇게 해놨습니다.
새글 아이콘과 새 코멘트 아이콘 둘 다 출력하고 싶으면 기존에 있던 새글 아이콘 부분은 주석 처리하지 말고 그대로 두고 새글 아이콘 출력 부분 밑에 아래 코드만 추가하세요.
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">';
}
최근 그누보드라면 위 코드에서..
echo '<img src="'.$board_skin_url.'/img/icon_new_cmt.gif">';
여기를 이렇게 변경
echo "<span class=\"newcmt_icon\">C<span class=\"sound_only\">새댓글</span></span>";
style.css 파일에서 아래 코드도 추가하셔아 하고요.
#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}
그누보드 최근 버전 기준으로 정상적으로 적용되었다면 이렇게 출력됩니다.
댓글목록 +6
댓글목록
신비님의 댓글
신비 작성일
오호,,,,,,,게시판이 훨씬 더 있어보이네요. ^^
좋은 팁 감사합니다. ( * __________ * ) =====b
신비님의 댓글
신비 작성일
wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 에서
wr_num = '{$list[$i]['wr_num']}' 코드는 왜 넣는건가요?
꼭 필요한 건가요? 제 생각엔 없어도 작동할 것 같은데..
관리자님의 댓글의 댓글
관리자 작성일
그게 없으면 해당 글의 댓글인지 어떻게 판단을 할까요? 궁금하면 직접 해보는 게 가장 좋습니다.
이렇게 해도 될 것 같은데 뭐가 더 나은지는 잘 모르겠네요.
wr_parent = '{$list[$i]['wr_id']}'
유유님의 댓글
유유 작성일필요로 했던건데 이렇게 올려주셔서 감사합니다.
어글리님의 댓글
어글리 작성일
다른테마스킨보드 사용중인데요 아무리찾아봐도 list.skin.php이파일안에
// if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; 이문장은 없어요
관리자님의 댓글의 댓글
관리자 작성일어떤 스킨인지 링크를 남겨보세요 살펴봐드리겠습니다.