웹마스터 팁
회원이 글 삭제하면 삭제하지 않고 글을 다른 게시판으로 보내기
2012.07.03 23:35
http://showjean.tistory.com/118 [신고된 게시물 게시판 이동: 애드온]
을 보고 한번 만들어 보려고 했는데 xe의 애드온 작동 시점이 글이 삭제된 후에
애드온이 작동하는 것 같아서 애드온으로는 불가능할 것 같다고 생각합니다..;;
[1.4.4 board 모듈 기준]
xe/modules/board/board.controller.php
120번 줄을 보면
// 삭제 시도
$output = $oDocumentController->deleteDocument($document_srl, $this->grant->manager);
if(!$output->toBool()) return $output;
가 보일겁니다.
// 삭제 시도
//주석 얍!! $output = $oDocumentController->deleteDocument($document_srl, $this->grant->manager);
// 새로 들어가는 부분
$oDocumentAdminController = &getAdminController('document');
$oModule = &getModel('module');
$temp_module= $oModule->getModuleSrlByMid("test"); // test 부분은 회원이 글을 삭제할 경우 가게 될 글의 임시 게시판 mid를 적어주면 됩니다;
$module_srl=$temp_module[0];
$document_srl_list[0]=$document_srl;
$output = $oDocumentAdminController->moveDocumentModule($document_srl_list, $module_srl, null);
if(!$output->toBool()) return $output;
로 바꿔주시면 되겠습니다.
이럴 경우 사용자들이 게시글을 썼다가 나중에 지웠을 때 관리자가 정해놓은 임시게시판 test로 이동하게 됩니다.
나중에 혹시나 모를 법적 분쟁이 들어올 경우 증거물을 제출해야할 때 좋습니다;
※ 적용하면 test로 이동한 게시물을 삭제하고 싶을 땐 삭제를 눌러도 삭제가 안될겁니다..
삭제를 누르면 test 게시판으로 이동하는데 test게시판의 게시물을 삭제할 경우 test로 이동하게 되니까 당연한거겠죠;
관리자 아이디로 로그인 후에 정리할 게시물을 선택한 후에 '게시글 관리'를 눌러서 삭제하시면 되겠습니다.
※ test 게시판은 아무나 접근하면 안되므로 권한도 잘 설정하셔야겠습니다.
댓글 5
-
인터니즈™
2012.07.03 23:49
-
SCAC
2012.07.21 15:33
올리겠습니다 :)
-
showjean
2012.07.04 10:44
이전에 애드온이 공개되었었는데 지금은 찾아도 없네요.
게시글 삭제 이전에 애드온을 실행하고 싶다면 $called_position == 'before_module_proc' 일때 $this->act == 'procBoardDeleteDocument' 를 비교해서 작동시키면 되겠고, 이때 게시물을 다른 게시판으로 먼저 복사 실행시키면 삭제->이동 효과를 볼 수 있습니다.
이 애드온도 위와 같은 순서로 제작되어 있네요. 저도 참고한 것이기도 하고요.
-
단기종합
2012.07.12 20:20
bodex에서는 방법이없을까요
-
incation
2019.03.15 13:40
나 invalid query 이런 거 alert로 뜨던데..ㅡ_ㅡ
그리고 걍 이동만 되던데 글 등록은 안되고 -_-
보통의 게시판에는 있어야 하는 팁인데,
사실 XE에서는 내가 올린글(&act=dispMemberOwnDocument)
부분 때문에 적용하기가 참으로 애매하네요.
내가 올린 글에서 특정게시판을 검색제외 하는 팁과 함께
사용해야 할 부분이네요.