질문/조언질답게시판

안녕하세요?

 

라이믹스 최신버전에서 휴지통 사용시 게시판 설정의

댓글 자리 남김 "대댓글이 있는 경우에만 남김" 기능이 정상 동작하지 않는 부분을 고쳐 보았습니다.

 

 

검색을 해보니 저 뿐만 아니라 다른 회원님들 역시 겪은 내용이여서 2버전에선 수정될 것으로 생각하고 있지만 그래도 올려봅니다.

 

 

코어를 수정해야 합니다. 코어 수정에 부담을 느끼시는 회원님께서는 다음 버전에서 문제가 해결되기를 바라며.. 패스해 주세요

 

 

 

modules/board/board.controller.php 611번째 줄 부근

611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
        elseif(starts_with('only_comm', $this->module_info->comment_delete_message) && $instant_delete != 'Y')
        {
            $childs = $oCommentModel->getChildComments($comment_srl);
            if(count($childs) > 0)
            {
                $output = $oCommentController->updateCommentByDelete($comment, $this->grant->manager);
                $updateComment = true;
                if($this->module_info->trash_use == 'Y')
                {
                    $output = $oCommentController->moveCommentToTrash($comment, $updateComment, True);
                }
            }
            else
            {
                if($this->module_info->trash_use == 'Y')
                {
                    $output = $oCommentController->moveCommentToTrash($comment, $updateComment, True);
                }
                else
                {
                    $output = $oCommentController->deleteComment($comment_srl, $this->grant->manager, FALSE, $childs);
                    if(!$output->toBool())
                    {
                        return $output;
                    }
                }
            }
        }
cs

 

 

 

 

 

 

modules/comment/comment.controller.php 1184, 1262번째 줄 부근

1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
    function moveCommentToTrash($obj, $updateComment = false, $useOnlycomm = false)
    {
        $logged_info = Context::get('logged_info');
        $trash_args = new stdClass();
        if(!$obj->trash_srl)
        {
            $trash_args->trash_srl = getNextSequence();
        }
        else
        {
            $trash_args->trash_srl = $obj->trash_srl;
        }
 
        $oCommentModel = getModel('comment');
        $oComment = $oCommentModel->getComment($obj->comment_srl);
        if(!$oComment->isExists())
        {
            return new BaseObject(-1'msg_not_founded');
        }
        if(!$oComment->isGranted())
        {
            return new BaseObject(-1'msg_not_permitted');
        }
 
        $oMemberModel = getModel('member');
        $member_info = $oMemberModel->getMemberInfoByMemberSrl($oComment->get('member_srl'));
        if($member_info->is_admin == 'Y' && $logged_info->is_admin != 'Y')
        {
            return new BaseObject(-1'msg_admin_comment_no_move_to_trash');
        }
 
        $obj->module_srl = $oComment->get('module_srl');
        $trash_args->module_srl = $obj->module_srl;
        if($trash_args->module_srl === 0)
        {
            return new BaseObject(-1'msg_module_srl_not_exists');
        }
        $trash_args->document_srl = $obj->document_srl;
        $trash_args->comment_srl = $obj->comment_srl;
        $trash_args->description = $obj->description;
 
        if(!Context::get('is_logged'))
        {
            $trash_args->member_Srl = $logged_info->member_srl;
            $trash_args->user_id = htmlspecialchars_decode($logged_info->user_id);
            $trash_args->user_name = htmlspecialchars_decode($logged_info->user_name);
            $trash_args->nick_name = htmlspecialchars_decode($logged_info->nick_name);
        }
 
        $oDB = &DB::getInstance();
        $oDB->begin();
 
        require_once(RX_BASEDIR.'modules/trash/model/TrashVO.php');
        $oTrashVO = new TrashVO();
        $oTrashVO->setTrashSrl(getNextSequence());
        $oTrashVO->setTitle(trim(strip_tags($obj->variables['content'])));
        $oTrashVO->setOriginModule('comment');
        $oTrashVO->setSerializedObject(serialize($obj->variables));
        $oTrashVO->setDescription($obj->description);
 
        $oTrashAdminController = getAdminController('trash');
        $output = $oTrashAdminController->insertTrash($oTrashVO);
        if(!$output->toBool())
        {
            $oDB->rollback();
            return $output;
        }
 
        if($updateComment !== true)
        {
            $output = executeQuery('comment.deleteComment', $trash_args);
            if(!$output->toBool())
            {
                $oDB->rollback();
                return $output;
            }
        }
 
        if(!$useOnlycomm)
        {
            $args = new stdClass();
            $args->comment_srl = $obj->comment_srl;
            $output = executeQuery('comment.deleteCommentList', $args);
        }
 
 
        // update the number of comments
        $comment_count = $oCommentModel->getCommentCount($obj->document_srl);
cs

 


빨간색으로 하이라이트 표시한 부분을 새로 추가하시면 됩니다.

 

썩 근사한 방법은 아닌 것 같지만 어찌 되었든간에 문제는 해결됩니다.

 

항상 라이믹스에 기여해주시는 모든 회원님들의 노고를 감사히 생각하고 있습니다...