묻고답하기
댓글 달린 글 삭제 못하게 하는 코드(송동우님 팁)가 1.7.4에서 작동이 안 됩니다.
2014.02.11 08:20
송동우 님께서 주신 팁으로 적용했었는데요.
링크 주소는 지금 못 찾겠는데, 다음과 같은 방법이었습니다.
-----------------------------------------
(삭제불가)
line 554 쯤에
$oCommentModel = &getModel('comment');
이것 아래에
$commentCount = $oCommentModel->getChildCommentCount($comment_srl);
if($commentCount) return new Object(-1, 'msg_invalid_request');
이것 삽입
댓글 11
-
왜죠
2014.02.11 08:26
-
마야^
2014.02.11 10:15
테스트를 해보니 되는데요 ....다시한번 정리를 하면요댓글이 달리면 삭제와 수정이 안되게 하려고합니다.=====================================================================(수정불가)xe /modules /document /document.controller.php 열고line 356 쯤에if(!$source_obj->document_srl || !$obj->document_srl) return new Object(-1,'msg_invalied_request');이것 아래에if(Context::get('logged_info')->is_admin!='Y'){$commentModel = &getModel('comment');$commentCount = $commentModel->getCommentCount($source_obj->document_srl);if($commentCount) return new Object(-1,'관리자에게 문의하세요.');}이것 삽입합니다.(삭제불가)xe / modules /board /board.controller.php 열고line 173 쯤에$oDocumentController = getController('document');이것 아래에if(Context::get('logged_info')->is_admin!='Y'){$commentModel = &getModel('comment');$commentCount = $commentModel->getCommentCount($document_srl);if($commentCount) return new Object(-1, '관리자에게 문의하세요.');}이것 삽입합니다.물론 관리자는 제외입니다.============================================================참고로 댓글이 안달려도 회원이 자신의 게시글을 스스로 삭제하지 못하게 할려면xe /modules /board /board.controller.php 열고line 117 쯤에function procBoardDeleteDocument() {이것 바로 아래에if(Context::get('logged_info')->is_admin!='Y') return new Object(-1, '관리자에게 문의하세요.');이것 추가하고요----------------------------------------------------------------------------한 게시판에서만 회원이 자신의 글을 삭제할 수 없도록 할려면....if(Context::get('logged_info')->is_admin!='Y'&&Context::get('mid')=='게시판 모듈명') return new Object(-1, '관리자에게 문의하세요.'); -
왜죠
2014.02.11 21:23
답변 주셔서 감사합니다.
그런데 답을 보고 혹시나 해서 다시 한 번 적용해봤는데,
여전히 댓글 달린 글 삭제 불가 기능이 적용이 안 되네요.
말씀하신대로 적용하면,
댓글 달린 글을 지우려 하면 "관리자에게 문의하세요."라는 메시지가 뜨긴 하는데,
글은 지워져버립니다.
왜 이러는지 답답하네요 ㅠ
-
왜죠
2014.02.14 07:11
아아.. ㅠ 다른 분들은 별 문제가 없는데 저만 안 되는 건가요 ㅠㅠ
-
마음의빈자리
2014.02.14 10:31
최고관리자 계정으로 삭제 테스트 하신것은 아닌가요?? ^^ -
왜죠
2014.02.14 12:13
최고관리자 계정으로 테스트하지는 않았습니다.
만약 그랬다면, 삭제할 수 없다는 메시지도 뜨지 않았을 것인데,
제 경우에는 삭제할 수 없다는 메시지를 띄워놓고, 삭제는 해버리는 게 문제입니다 ㅠ
-
BJ람보
2014.02.18 04:57
1.7.4 기본 내장되어있는 기능인데 코어를 수정하면서까지 하실 필요는 없어보입니다.
게시판설정 고급옵션에서 잘 찾아보시기 바랍니다.
/수정 삭제를 금지하도록 해주는 기능이 포함되어있습니다./
코어업그레이드 1.7.4 업뎃시 board 모듈(게시판 모듈)은 자동적으로 탑제되어잇으니. 그대로 설치하시면 됩니다..
-
왜죠
2014.02.18 11:02
답변 감사합니다.
글 보호 기능은 제가 이 질문을 올린 뒤에 발견을 하긴 했는데,
수정과 삭제를 따로따로 설정할 수가 없다는 아쉬운 점이 있네요.
댓글 달린 글 수정은 가능하게 하고, 삭제는 불가능하게 하고싶었거든요.
일단 아쉬운대로 쓰면서 더 연구해봐야겠네요.
답변 감사합니다-~
-
foret
2014.02.18 19:35
아 저 기능을 쓰면 되겠다 싶어서 제 답변을 삭제했는데...
스킨에서 제어하시는 법도 있긴한데 스킨 수정하실 생각은 없으신지요. ㅎㅎ 이렇게~
<a <!--@if($document->get('getCommentCount')==0 || $grant->manager)-->href="{getUrl('act','dispBoardDelete','document_srl',$oDocument->document_srl,'comment_srl','')}" <
-
왜죠
2014.02.18 21:45
답변 감사합니다.
저도 사실 이렇게 해볼까도 생각하고 있었는데,(코어에 손을 안 대도 된다는 장점..)
삭제 버튼을 안 보여주는 방식이기에
주소창에 "./index.php?mid=xxx&document_srl=xxxx&act=dispBoardDelete" 뭐 이런식으로
url을 직접 입력하는 방식으로 삭제하는 건 못 막는다는 문제가 있을 것 같은데 맞나요?
만약 그렇다면 결국 삭제를 완전히 차단하지는 못할 것 같아서 고민이었어요.
그래도, 이 방법을 고려해봐야겠네요. 감사합니다.
-
왜죠
2014.03.02 20:02
아직 해결 못해서 계속 답변 기다립니다 ㅠ
아 그리고, 댓글이 달린 댓글 삭제 불가 코드는 잘 작동이 되긴 하는데,
댓글 달린 댓글을 삭제하려고 하면 "잘못된 요청입니다."라는 메시지가 나오는데요.
이걸 "댓글이 달린 댓글은 삭제할 수 없습니다."로 고치고 싶어서
'msg_invalid_request' 부분을 '댓글이 달린 댓글은 삭제할 수 없습니다.'로 바꾸면
메시지가 깨지더군요.
아마 한글이 깨지는 것 같은데, 이건 어떻게 할 수 있는 방법이 없을까요?
게시판 모듈에서는 스킨이나 모듈에 저런 한글 메시지를 넣어도 적용이 되는 것 같은데,
코멘트 모듈에서는 안 되는 것 같는데, 게시판 모듈에서 한글 메시지를 넣을 수 있게 하거나, 다른 방식으로라도 원하는 메시지를 한글로 넣을 방법이 없을까요?
코멘트 모듈 말고 지식인 모듈에서도 안 되더군요.