이글에 포함된 코멘트 일괄삭제 시스템(수정) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

이글에 포함된 코멘트 일괄삭제 시스템(수정) 정보

이글에 포함된 코멘트 일괄삭제 시스템(수정)

본문

참조링크 :
http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=176281

수정안내 :
최종 수정일 : 2007-3-12 일 15:30
소스 내용중에서 버전 차이로 인한 버그가 발견이 되어 수정이 되었으므로 사용중인 그누보드의 버전을 확인후 환경에 맞도록 사용 하세요.(주석 설명 참조)

이팁의용도 :
트랙백 테러를 당하여 한개의 글에 수백~수천개의 댓글이 달렸을 경우 최고 관리자 권한으로 해당 게시글에 포함된 코멘트를 일괄 정리 하는 방법 입니다.

참조사항 :
제가 사용하는 테스트계정 3군데에서 테스트해본 결과 작동은 잘됩니다만
문제점이 발생할수도 있으므로 참조 바랍니다.

적용방법 :
사용중인 게시판 스킨/ view.skin.php 의 적당한 위치에 아래의 코드를 추가 합니다.


<?
//해당글에 딸린 코멘트 일괄 삭제 시스템 by 헐랭이
$kototal = $view[wr_comment];//이글의 코멘트 총갯수
if ($admin_comment_del_ok == "comment_del_ok") {
 if ($is_admin !="super") {
  alert("최고관리자가 아닙니다.");
 }
if (!$kototal) {
  alert("등록된 코멘트가 없습니다.");
}
// 원글에 포함된 코멘트를 전부삭제
sql_query(" delete from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 ");

// 버전별 코드분리 시작
// 아래의 코드는 버전에 따라서 다르므로 환경에 맞는 코드를 사용 하세요.
//그누보드 4.09.00 이전 버전 사용자용
// 원글에 코멘트 숫자를 감소한다.
sql_query(" update $write_table set wr_comment = wr_comment - $kototal where wr_id = '$wr_id' ");

// 그누보드 4.09.00 이후 버전 사용자용
// 코멘트가 삭제되므로 해당 게시물에 대한 최근 시간을 다시 얻는다.
$sqlst = " select max(wr_datetime) as wr_last from $write_table where wr_parent = '$wr_id' ";
$rowst = sql_fetch($sqlst);                                     
// 원글에 코멘트 숫자를 감소 하면서 최신 날자를 되돌린다.
sql_query(" update $write_table set wr_comment = wr_comment - $kototal, wr_last = '$rowst[wr_last]'  where wr_id = '$wr_id' ");
// 버전별 코드 분리 끝

// 이게시판 전체 갯수에서 삭제된 코멘트의 갯수만큼 감소
sql_query(" update $g4[board_table] set bo_count_comment = bo_count_comment - $kototal where bo_table = '$bo_table' ");
// 새글에 등록이 되었다면 전부삭제
sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_parent = '$wr_id' ");
echo"<script language=\"javascript\">
window.alert(\"이글의 코멘트가 전부 삭제 되었습니다. 총갯수: $kototal 개\");
</script>";
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id&page=$page" . $qstr);
exit;
}
if ($is_admin =="super") {
 if ($kototal) {
//echo "$view[wr_comment] 개";
echo"
<FORM NAME='admin_view_comment_del' METHOD='POST' ACTION='./board.php' onclick=\"return confirm('이글에 포함된 코멘트를 전부 삭제 하시겠습니까?\\n\\n코멘트 일괄 삭제를 실행하면 돌이킬수 없습니다.')\">
<input type='hidden' name='bo_table'  value='$bo_table'>
<input type='hidden' name='wr_id'  value='$wr_id'>
<input type='hidden' name='admin_comment_del_ok'  value='comment_del_ok'>
<INPUT TYPE='submit' VALUE='코멘트일괄삭제'>
</FORM>";
 }
}
?>
추천
6

댓글 26개

나의 아이디어를 공개하는 것 보다,
타인의 어려움을 살펴 주시는 팁인듯 합니다.
고생하셨습니다.

ps : 요즘 일당이 얼마나 될까요?(...노가다...)
소스 내용중에서 버전 차이로 인한 버그가 발견이 되어 수정이 되었으므로 사용중인 그누보드의 버전을 확인후 환경에 맞도록 사용 하세요. 아래의 소스코드 부분 입니다.

// 버전별 코드분리 시작
// 아래의 코드는 버전에 따라서 다르므로 환경에 맞는 코드를 사용 하세요.
//그누보드 4.09.00 이전 버전 사용자용
// 원글에 코멘트 숫자를 감소한다.
 sql_query(" update $write_table set wr_comment = wr_comment - $kototal where wr_id = '$wr_id' ");

// 그누보드 4.09.00 이후 버전 사용자용
// 코멘트가 삭제되므로 해당 게시물에 대한 최근 시간을 다시 얻는다.
$sqlst = " select max(wr_datetime) as wr_last from $write_table where wr_parent = '$wr_id' ";
$rowst = sql_fetch($sqlst);                                     
// 원글에 코멘트 숫자를 감소 하면서 최신 날자를 되돌린다.
sql_query(" update $write_table set wr_comment = wr_comment - $kototal, wr_last = '$rowst[wr_last]'  where wr_id = '$wr_id' ");
// 버전별 코드 분리 끝
코멘트가 1008개가 달렸네요..후덜덜..ㅡㅡ.우째 이런 테러가..코멘트 10등급 이상만 쓰기로 바꾸어야 겟네요...감사해요..^^
전체 67 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT