[1원짜리팁] 특정기간이 지난 글에는 댓글금지..! 정보
[1원짜리팁] 특정기간이 지난 글에는 댓글금지..!관련링크
http://www.poriter.com
249회 연결
본문
중복이 아닐런지 모르겠습니다.
커뮤니티를 운영하다보니 포인트에 열을 올리는분들이 좀 계시네요..
그래서 오래된글에 코멘트을 달면서 포인트를 획득하려는 분들도 종종있답니다.
타 커뮤니티를 보니 특정기간이 지난글에는 코멘트를 못달게 해놨더군요..
skin/view_comment.skin.php 의
<form>테그의 시작부분 <tr>위쪽에 글을 작성한 날짜값과 현시간의 timestamp값을 가져와
특정기간을 더하여 비교하는 부분을 넣어서 기간내의 글이라면 코멘트쓰기 폼이 나오고
기간내의 글이 아니라면 코멘트쓰기폼을 없애도록 했습니다.
--------------------------------------적용되는 분입니다.--------------------------------------------
</td></tr>
<? //코멘트 쓰기 출력시작
$now_timestamp=time(); //현재시간을 timestamp로 받는다.
$comment_sql = "select wr_datetime from $write_table where wr_id = '$wr_id' and wr_is_comment = '0'";
$comment_datetime = sql_fetch($comment_sql);
$comment[year] = substr($comment_datetime[wr_datetime],0,4); //글쓴 년도를 받는다
$comment[mon] = substr($comment_datetime[wr_datetime],5,2); //글쓴 월을 받는다
$comment[day] = substr($comment_datetime[wr_datetime],8,2); //글쓴 날짜를 받는다
$comment[timestamp] = mktime(23, 59, 59, $comment[mon], $comment[day]+7, $comment[year]); // 글쓴년월일+7을 timestamp로 받는다.
if($comment[timestamp] > $now_timestamp){ //글쓴년월일과 현재의 timestamp값을 비교한다.
?>
<? //코멘트 쓰기 출력시작
$now_timestamp=time(); //현재시간을 timestamp로 받는다.
$comment_sql = "select wr_datetime from $write_table where wr_id = '$wr_id' and wr_is_comment = '0'";
$comment_datetime = sql_fetch($comment_sql);
$comment[year] = substr($comment_datetime[wr_datetime],0,4); //글쓴 년도를 받는다
$comment[mon] = substr($comment_datetime[wr_datetime],5,2); //글쓴 월을 받는다
$comment[day] = substr($comment_datetime[wr_datetime],8,2); //글쓴 날짜를 받는다
$comment[timestamp] = mktime(23, 59, 59, $comment[mon], $comment[day]+7, $comment[year]); // 글쓴년월일+7을 timestamp로 받는다.
if($comment[timestamp] > $now_timestamp){ //글쓴년월일과 현재의 timestamp값을 비교한다.
?>
<!--여기부터가 코멘트쓰기폼시작되는부분--->
<tr><td style='background:#F8F8F9;'>
<span id=comment_write style='display:none;'>
<form name="fviewcomment" method="post" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
<tr><td style='background:#F8F8F9;'>
<span id=comment_write style='display:none;'>
<form name="fviewcomment" method="post" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
.
.
.
.
.
.
</form>
</span>
</td>
</tr>
</span>
</td>
</tr>
<!--여기까지가 코멘트쓰기폼끝나는 부분--->
<?}else{ // 코멘트 쓰기 출력 끝?>
<tr>
<td colspan="2" align="center">
<table width="60%" cellpadding="0" style='border:1px solid #dddddd;background:#F8F8F9;'>
<tr>
<td align="center" height="50" style='word-break:break-all;'>
<font color="red">일주일이 지난 글에는 댓글 금지!</font>
</td>
</tr>
</table>
</td>
</tr>
<?}?>
<tr>
<td colspan="2" align="center">
<table width="60%" cellpadding="0" style='border:1px solid #dddddd;background:#F8F8F9;'>
<tr>
<td align="center" height="50" style='word-break:break-all;'>
<font color="red">일주일이 지난 글에는 댓글 금지!</font>
</td>
</tr>
</table>
</td>
</tr>
<?}?>
여기까지 처리해주시면 폼은 안나오게 되는데 아래쪽의 스크립트에서 글쓰기폼을 체크합니다 때문에 스크립트 오류가 나구요.. 때문에 아래와 같이 스크립트 출력부분에 한번더 if문을 걸어줍니다.
<? if($coment[timestamp] > $now_timestamp){ //글쓴년월일과 현재의 timestamp값을 비교한다.?>
<script language='JavaScript'>
<script language='JavaScript'>
.
.
.
</script>
<?}?>
<?}?>
* 리스트페이지에서 코멘트 새창시 $view변수값을 가져오지 못함으로 중간에 쿼리하나 더 들어갔습니다.
추천
5
5
댓글 6개
오~ 좋은 팁입니다. ^^y
일정 기간이 지난 게시물에는 포인트를 주지 않는 방법도 있겠네요. ㅎㅎ
오.. 그렇군요.. 설문을 한번 해봐야겠네요... 항상 감사드립니다..
문제가 있습니다. 코멘트만새창띄우기 봤을때는 $view값이 없음으로 if값이 false만 나온답니다.
때문에 코멘트페이지 안에서 새로 쿼리를 날려 날짜값을 읽어와야 할듯합니다..
수정하였습니다.!
때문에 코멘트페이지 안에서 새로 쿼리를 날려 날짜값을 읽어와야 할듯합니다..
수정하였습니다.!
일정기간이 지나간 글을 감출 수 도..^^
문제가 있네요 ㅋ 공지사항 같은경우 좀 오랜기간 가는 경우도 있는데 음.. ㅋ
다시 짜봐야겠네요 ㅋ
다시 짜봐야겠네요 ㅋ