똥 남기는 모듈
게시글 삭제 전
게시글 삭제 후
삭제된 게시글 (비)추천 방지
댓글 삭제 똥 남기기
유저가 작성한 게시글, 댓글, 대댓글을 삭제할 경우 "삭제된 게시글입니다" 와 같이 전환하는 모듈입니다.
일부 애니 사이트에서 사용중인 방식이길래 급하게 미러링했습니다.
유저가 아닌 (게시판)관리자가 삭제할 경우 정상적으로 삭제됩니다.
따로 설정페이지 같은건 없습니다
그냥 부처님 같은 마음으로 뿌려봅니다 ㅋㅋ;
+ 댓글에 대댓글이 달려 있을 경우 수정방지 기능이 포함되어 있습니다.
게시판 스킨단 삭제된 게시글 판별 예제 (스케치북 _read_nav.html)
{@
...
$is_deleted = !($logged_info && $logged_info->is_admin == "Y") && preg_match('/<span.*?style=".*color:\s?#888888.*">/i', $oDocument->getTitle($mi->subject_cut_size)) ? TRUE : FALSE;
}
<a cond="$is_logged" class="document_{$oDocument->document_srl} action bubble m_no" href="#popup_menu_area" onclick="return false;" title="{$lang->cmd_document_do}"><i class="fa fa-ellipsis-h"></i><b class="tx">{$lang->cmd_document_do}</b></a>
<block cond="$oDocument->isEditable() && !$is_deleted">
<a class="edit" href="{getUrl('act','dispBoardWrite','document_srl',$oDocument->document_srl,'comment_srl','')}"><i class="ico_16px write"></i>{$lang->cmd_modify}</a>
<a class="edit" href="{getUrl('act','dispBoardDelete','document_srl',$oDocument->document_srl,'comment_srl','')}"><i class="ico_16px delete"></i>{$lang->cmd_delete} </a>
</block>
개발환경 XE 1.8.27, php 5.6
https://github.com/huhani/xe-gamezot
+
https://github.com/huhani/xe-gamezot/commit/451ce4a974ef5a7b69d746fb696c58c6a165fa9e
파일이 첨부된 댓글 삭제시 계속 남아있는 현상 수정하였습니다
해당 행을 추가해주세요
댓글 59
게시글도 댓글도 잘 적용되네요~
한가지 추가하고 싶은 것이 있습니다.
게시글 삭제시 tag 테이블에 들어갔던 이 삭제게시물의 문서번호로 들어간 태그를 삭제해 주고 싶은데요.
-> 이유는 저희는 tag를 활용해서 문서에 해시태그 형태로 태그를 보여주고 있습니다. 그런데 다른 곳에서 태그를 눌러 조회하면 목록에 이 삭제된게시물입니다. 라는 게시물이 함께 조회가 되어서요. 게시물이 완전 삭제될 때는 태그관련 db가 모두 삭제가 되기 때문에...
tag 모듈에 코드를 보니
function triggerDeleteTag(&$obj)
{
$document_srl = $obj->document_srl;
if(!$document_srl) return new Object();
$args = new stdClass();
$args->document_srl = $document_srl;
return executeQuery('tag.deleteTag', $args);
}
<query id="deleteTag" action="delete">
<tables>
<table name="tags" />
</tables>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
</conditions>
</query>
tags 테이블에서 이렇게 해당문서번호의 태그는 모두 지워주고 있습니다.
-----------------------------------------------------------------------------------
function triggerDeleteTag(&$obj)
{
$document_srl = $obj->document_srl;
if(!$document_srl) return new Object();
$args = new stdClass();
$args->document_srl = $document_srl;
return executeQuery('tag.deleteTag', $args);
}
이부분을 똥남기는모듈의 어떤 부분에 어떻게 고쳐 넣어야 할지 알 수 있을까요 ??
$args->document_srl = $document_srl;
executeQuery('tag.deleteTag', $args);
https://github.com/huhani/xe-gamezot/blob/master/gamezot.controller.php#L121
같은 곳에 적당히 구겨넣으면 될 것 같습니다.
XE 최신코어에서 관리자페이지 혹은 게시글 관리에서 삭제된게시글 삭제가 실패가 발생합니다.
댓글은 이미삭제된 댓글이라고 뜨고 삭제되지 않습니다.
어디를 고쳐야 할까요?