새 댓글이 등록되었을 때 게시판 목록에 코멘트용 new 아이콘 출력 - 게시판스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

게시판스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

새 댓글이 등록되었을 때 게시판 목록에 코멘트용 new 아이콘 출력

관리자 17-09-11 20:20

새글을 등록하면 목록에 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 폴더에 추가.

필요하시면 아래 이미지 사용하세요.

 

 eed3112d03b2494a994f2ce815526667_1505129158_5596.gif
 

팁 내용에서는 이미지 파일 이름을 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; 이 부분 컬러 코드 수정하세요.


정상적으로 적용되었다면 이렇게 출력됩니다.


d4120ca4571c65320509b9b834ab81e7_1634768941_3737.png
 



## 참고사항 ## 


새글 아이콘이 출력되고 있을 때는 코멘트 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}



그누보드 최근 버전 기준으로 정상적으로 적용되었다면 이렇게 출력됩니다.


d4120ca4571c65320509b9b834ab81e7_1634768951_8414.png 

댓글목록 +6

댓글목록

profile_image

신비님의 댓글

신비 작성일

오호,,,,,,,게시판이 훨씬 더 있어보이네요. ^^ 
좋은 팁 감사합니다. ( * __________ * ) =====b

profile_image

신비님의 댓글

신비 작성일

wr_num = '{$list[$i]['wr_num']}' and wr_is_comment = 1 에서
wr_num = '{$list[$i]['wr_num']}' 코드는 왜 넣는건가요?
꼭 필요한 건가요?  제 생각엔 없어도 작동할 것 같은데..

profile_image

관리자님의 댓글의 댓글

관리자 작성일

그게 없으면 해당 글의 댓글인지 어떻게 판단을 할까요? 궁금하면 직접 해보는 게 가장 좋습니다.
이렇게 해도 될 것 같은데 뭐가 더 나은지는 잘 모르겠네요.
wr_parent = '{$list[$i]['wr_id']}'

profile_image

유유님의 댓글

유유 작성일

필요로 했던건데 이렇게 올려주셔서 감사합니다.

profile_image

어글리님의 댓글

어글리 작성일

다른테마스킨보드 사용중인데요 아무리찾아봐도 list.skin.php이파일안에
// if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; 이문장은 없어요

profile_image

관리자님의 댓글의 댓글

관리자 작성일

어떤 스킨인지 링크를 남겨보세요 살펴봐드리겠습니다.

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright © GNUSTUDY. All rights reserved.