list.skin.php, view_comment.skin.php 새글 아이콘 노출 문제 채택완료
안녕하세요
새글 아이콘 관련 문의를 드리려고 합니다.
https://sir.kr/g5_tip/1084?sfl=wr_subject%7C%7Cwr_content&stx=%EC%83%88%EA%B8%80#c_3482" target="_blank">메뉴에 새글 아이콘
위 글을 참고하여 메뉴에 새글 아이콘을 넣은 적이 있는데요,
제목에 언급한대로 list.skin.php와 view_comment.skin.php에 새글을 넣으려고 합니다.
---------------------------------------------------------------------------------------------
list.skin.php에는
if (isset($list[$i]['icon_new'])) echo rtrim($list[$i]['icon_new']);
기본으로 들어가있는 이 코드를 통해 노출이 가능한데 이건 해당 글이 있는 부분에만 노출이 되더라구요
제가 원하는건 위처럼 되는 경우 해당 필드의 제목 부분에도 새글 아이콘을 넣는 것입니다.

</p>
<p><th>작성일</th></p>
<p>.</p>
<p>.</p>
<p>.</p>
<p><td><?php if (isset($list[$i]['icon_new'])) echo rtrim($list[$i]['icon_new']);?>...</td></p>
<p>
따로 남길 코드가 없는 것 같네요...그냥 별개로 많은 코드가 추가될 것 같기도 하고 ㅠ
------------------------------------------------------------------------------------------------------
view_comment.skin.php에는
아예 새글 아이콘 노출이 기본으로 되어있지 않은 것 같네요..글 옆에 나오는게 우선일테고 리스트와 마찬가지로 '댓글목록' 옆에도 나오도록 하고 싶습니다.

기본 코드지만 남겨놓습니다.
</p>
<p><?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?></p>
<p><script>
// 글자수 제한
var char_min = parseInt(<?php echo $comment_min ?>); // 최소
var char_max = parseInt(<?php echo $comment_max ?>); // 최대
</script></p>
<p><!-- 댓글 시작 { -->
<section id="bo_vc">
<h2>댓글목록</h2>
<?php
$cmt_amt = count($list);
for ($i=0; $i<$cmt_amt; $i++) {
$comment_id = $list[$i]['wr_id'];
$cmt_depth = ""; // 댓글단계
$cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;
$comment = $list[$i]['content'];
if (strstr($list[$i]['wr_option'], "secret")) {
$str = $str;
}
$comment = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $comment);
$cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결
?></p>
<p> <article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
<header style="z-index:<?php echo $cmt_sv; ?>">
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?>
<?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" class="icon_reply" alt="댓글의 댓글"><?php } ?>
<?php if ($is_ip_view) { ?>
아이피
<span class="bo_vc_hdinfo"><?php echo $list[$i]['ip']; ?></span>
<?php } ?>
작성일
<span class="bo_vc_hdinfo"><time datetime="<?php echo date('Y-m-d\TH:i:s+09:00', strtotime($list[$i]['datetime'])) ?>"><?php echo $list[$i]['datetime'] ?></time></span>
<?php
include(G5_SNS_PATH.'/view_comment_list.sns.skin.php');
?>
</header></p>
<p> <!-- 댓글 출력 -->
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?><?php if (isset($list[$i]['icon_new'])) echo rtrim($view[$i]['icon_new']);?>
</p></p>
<p> <span id="edit_<?php echo $comment_id ?>"></span><!-- 수정 -->
<span id="reply_<?php echo $comment_id ?>"></span><!-- 답변 --></p>
<p> <input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret") ?>" id="secret_comment_<?php echo $comment_id ?>">
<textarea id="save_comment_<?php echo $comment_id ?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0) ?></textarea></p>
<p> <?php if($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) {
$query_string = clean_query_string($_SERVER['QUERY_STRING']);</p>
<p> if($w == 'cu') {
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content'];
}</p>
<p> $c_reply_href = './board.php?'.$query_string.'&c_id='.$comment_id.'&w=c#bo_vc_w';
$c_edit_href = './board.php?'.$query_string.'&c_id='.$comment_id.'&w=cu#bo_vc_w';
?>
<footer>
<ul class="bo_vc_act">
<?php if ($list[$i]['is_reply']) { ?><li><a href="<?php echo $c_reply_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'c'); return false;">답변</a></li><?php } ?>
<?php if ($list[$i]['is_edit']) { ?><li><a href="<?php echo $c_edit_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'cu'); return false;">수정</a></li><?php } ?>
<?php if ($list[$i]['is_del']) { ?><li><a href="<?php echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><?php } ?>
</ul>
</footer>
<?php } ?>
</article>
<?php } ?>
<?php if ($i == 0) { //댓글이 없다면 ?><p id="bo_vc_empty">등록된 댓글이 없습니다.</p><?php } ?></p>
<p></section>
<!-- } 댓글 끝 --></p>
<p><?php if ($is_comment_write) {
if($w == '')
$w = 'c';
?>
<!-- 댓글 쓰기 시작 { -->
<aside id="bo_vc_w">
<h2>댓글쓰기</h2>
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
<input type="hidden" name="comment_id" value="<?php echo $c_id ?>" id="comment_id">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="spt" value="<?php echo $spt ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="is_good" value=""></p>
<p> <div class="tbl_frm01 tbl_wrap">
<table>
<tbody>
<?php if ($is_guest) { ?>
<tr>
<th scope="row"><label for="wr_name">이름<strong class="sound_only"> 필수</strong></label></th>
<td><input type="text" name="wr_name" value="<?php echo get_cookie("ck_sns_name"); ?>" id="wr_name" required class="frm_input required" size="5" maxLength="20"></td>
</tr>
<tr>
<th scope="row"><label for="wr_password">비밀번호<strong class="sound_only"> 필수</strong></label></th>
<td><input type="password" name="wr_password" id="wr_password" required class="frm_input required" size="10" maxLength="20"></td>
</tr>
<?php } ?>
<tr >
<th scope="row"><label for="wr_secret">비밀글사용</label></th>
<td><input type="checkbox" name="wr_secret" value="secret" id="wr_secret"></td>
</tr>
<?php if ($is_guest) { ?>
<tr>
<th scope="row">자동등록방지</th>
<td><?php echo $captcha_html; ?></td>
</tr>
<?php } ?>
<?php
if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) {
?>
<tr>
<th scope="row">SNS 동시등록</th>
<td id="bo_vc_send_sns"></td>
</tr>
<?php
}
?>
<tr>
<th scope="row">내용</th>
<td>
<?php if ($comment_min || $comment_max) { ?><strong id="char_cnt"><span id="char_count"></span>글자</strong><?php } ?>
<textarea id="wr_content" name="wr_content" maxlength="10000" required class="required" title="내용"
<?php if ($comment_min || $comment_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?php } ?>><?php echo $c_wr_content; ?></textarea>
<?php if ($comment_min || $comment_max) { ?><script> check_byte('wr_content', 'char_count'); </script><?php } ?>
<script>
$(document).on( "keyup change", "textarea#wr_content[maxlength]", function(){
var str = $(this).val()
var mx = parseInt($(this).attr("maxlength"))
if (str.length > mx) {
$(this).val(str.substr(0, mx));
return false;
}
});
</script>
</td>
</tr>
</tbody>
</table>
</div></p>
<p> <div class="btn_confirm">
<input type="submit" id="btn_submit" class="btn_submit" value="댓글등록">
</div></p>
<p> </form>
</aside></p>
<p><script>
var save_before = '';
var save_html = document.getElementById('bo_vc_w').innerHTML;</p>
<p>function good_and_write()
{
var f = document.fviewcomment;
if (fviewcomment_submit(f)) {
f.is_good.value = 1;
f.submit();
} else {
f.is_good.value = 0;
}
}</p>
<p>function fviewcomment_submit(f)
{
var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자</p>
<p> f.is_good.value = 0;</p>
<p> var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": "",
"content": f.wr_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});</p>
<p> if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
f.wr_content.focus();
return false;
}</p>
<p> // 양쪽 공백 없애기
var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자
document.getElementById('wr_content').value = document.getElementById('wr_content').value.replace(pattern, "");
if (char_min > 0 || char_max > 0)
{
check_byte('wr_content', 'char_count');
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("댓글은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
} else if (char_max > 0 && char_max < cnt)
{
alert("댓글은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
else if (!document.getElementById('wr_content').value)
{
alert("댓글을 입력하여 주십시오.");
return false;
}</p>
<p> if (typeof(f.wr_name) != 'undefined')
{
f.wr_name.value = f.wr_name.value.replace(pattern, "");
if (f.wr_name.value == '')
{
alert('이름이 입력되지 않았습니다.');
f.wr_name.focus();
return false;
}
}</p>
<p> if (typeof(f.wr_password) != 'undefined')
{
f.wr_password.value = f.wr_password.value.replace(pattern, "");
if (f.wr_password.value == '')
{
alert('비밀번호가 입력되지 않았습니다.');
f.wr_password.focus();
return false;
}
}</p>
<p> <?php if($is_guest) echo chk_captcha_js(); ?></p>
<p> set_comment_token(f);</p>
<p> document.getElementById("btn_submit").disabled = "disabled";</p>
<p> return true;
}</p>
<p>function comment_box(comment_id, work)
{
var el_id;
// 댓글 아이디가 넘어오면 답변, 수정
if (comment_id)
{
if (work == 'c')
el_id = 'reply_' + comment_id;
else
el_id = 'edit_' + comment_id;
}
else
el_id = 'bo_vc_w';</p>
<p> if (save_before != el_id)
{
if (save_before)
{
document.getElementById(save_before).style.display = 'none';
document.getElementById(save_before).innerHTML = '';
}</p>
<p> document.getElementById(el_id).style.display = '';
document.getElementById(el_id).innerHTML = save_html;
// 댓글 수정
if (work == 'cu')
{
document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
if (typeof char_count != 'undefined')
check_byte('wr_content', 'char_count');
if (document.getElementById('secret_comment_'+comment_id).value)
document.getElementById('wr_secret').checked = true;
else
document.getElementById('wr_secret').checked = false;
}</p>
<p> document.getElementById('comment_id').value = comment_id;
document.getElementById('w').value = work;</p>
<p> if(save_before)
$("#captcha_reload").trigger("click");</p>
<p> save_before = el_id;
}
}</p>
<p>function comment_delete()
{
return confirm("이 댓글을 삭제하시겠습니까?");
}</p>
<p>comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)</p>
<p><?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
// sns 등록
$(function() {
$("#bo_vc_send_sns").load(
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
function() {
save_html = document.getElementById('bo_vc_w').innerHTML;
}
);
});
<?php } ?>
</script>
<?php } ?>
<!-- } 댓글 쓰기 끝 --></p>
<p>
댓글로 답변이 가능한 문의사항인지 모르겠네요
더 필요한 코드가 있다면 말씀해주세요
감사합니다.
답변 2개
1, 2 모두 같습니다.
</p>
<p><?php
foreach($list as $row) {
if (isset($list[$i]['icon_new'])) {
$is_new = true;
break;
}
}
if ($is_new) echo '<span class="new_icon">N</span>';
?></p>
<p>
답변에 대한 댓글 3개
<h2>댓글목록</h2>
<?php
foreach($list as $row) {
if (isset($list[$i]['icon_new'])) {
$is_new = true;
break;
}
}
if ($is_new) echo '<span class="new_icon">N</span>';
?>
<?php
$cmt_amt = count($list);
~
작성해주신대로 해봤는데도 아무 변화가 없네요...
영카트인 것과 뷰코멘트 부분인 것이 이유일지....페이지 소스를 봐도 해당 부분에는 아무것도 나오지를 않네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 3개
푸른산타님깨서 작성하신 글은 아니지만
1. 체크한 게시판 전체가 아닌 게시판별로 24시간 이내 작성된 글 갯수를 출력할 수 있는지?
2. 24시간 이내 작성된 댓글 수를 출력할 수 있는지?
2가지 추가 확인 가능할까요...?
https://sir.kr/g5_skin/52582
감사합니다!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
<!-- 댓글 시작 { -->
<section id="bo_vc">
<h2>댓글목록</h2>
<?php
$cmt_amt = count($list);
for ($i=0; $i<$cmt_amt; $i++) {
$comment_id = $list[$i]['wr_id'];
$cmt_depth = ""; // 댓글단계
$cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;
$comment = $list[$i]['content'];
/* 여기서부터 추가 */
foreach($list as $row) {
if (isset($list[$i]['icon_new'])) {
$is_new = true;
break;
}
};
if ($is_new) echo '<span class="new_icon">N</span>';
/* 여기까지 추가 */
if (strstr($list[$i]['wr_option'], "secret")) {
$str = $str;
}
$comment = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $comment);
$cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결
?>
[/code]