Extra Form
PHP PHP 7.2
CMS Rhymix 2.0

안녕하세요. 항상 도움주셔서 감사합니다.

 

 

자리남기기를 설정해도 삭제된 댓글이 최근글에서 추출되지 않도록 수정하기위해 적용된 기본 스킨을 찾고있습니다.

XE나 라이믹스에 내장된 기본 댓글추출 위젯이 따로 없어 기준을 세우지 못하고있습니다.

 

혹시 기본 으로 삼을만한 위젯이 있을까요?

 

https://xe1.xpressengine.com/index.php?mid=download&package_id=18324343

나름 공식자료라고 생각되는 기본 위젯도 삭제된 메시지를 표시하는 것 같습니다.

 

관삭댓.JPG

  • profile
    content 위젯에서도 댓글 추출이 되지 않나요?
    그래서 라이믹스 코어에서도 content 위젯만 기본 탑재해서 제공하는 것으로 알고 있어요.
  • profile profile

    아아 기본에서도 추출이 되네요

    컨텐츠 위젯 에서도 댓글로 생성 해보니 아쉽게도 삭제된 댓글 자리 남기기의 삭제된것을 안불러오는 기능은 지원을 안하는것 같습니다.

     

    댓글.JPG

     

    댓글2.JPG

     

  • profile profile
    네, 위젯 자체적으로는 지원하지 않는 것 같아요.
    댓글 자리 남기기 기능보다 이전에 만들어진 위젯이어서 그렇겠죠.
    아래 댓글 https://xetown.com/questions/1726424#comment_1726432 에서처럼 코어를 살짝 수정해주면 될 것 같습니다.
    (코어에 이슈를 넣어야 할지...)
  • profile
    아 그리고
    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/modules/comment/comment.controller.php#L966-L976

    여기를 보면 댓글 자리 남기기를 할 경우 댓글의 status값이 다르게 입력되는 것 같은데요.
    댓글 목록 쿼리를 실행할 때, 즉 아래 링크 자리 정도에
    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/widgets/content/content.class.php#L198

    $obj->status = 1;
    같은 것을 삽입해보면 어떨까 싶어요.
    물론 직접 해본 것은 아니어서 확신은 없어요 😅
  • profile
    여기를 보니 status를 1로 하면 공개 상태의 댓글만 수집할 수 있을 것 같습니다.
    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/common/constants.php#L143-L156
  • profile profile
    답변 감사드립니다.

    관리자가 삭제한 댓글은 기본 위젯에서는 정상적으로 안뜨는것 같고 (관리자가 삭제한 댓글 입니다.)
    자리 남기기 댓글은 뜨는 것 같네요. (삭제된 댓글 입니다.)

    198행에 넣어봤는데 아무 변화는 일어나지 않네요.
    댓글 페이지에서도 아마 삭제된 댓글입니다를 표시하기에 같은 옵션인 status 1을 넣어도 똑같이 삭제된 댓글입니다가 나오는게 아닐까 조심스럽게 생각해봅니다
  • profile profile

    위젯에서 status값을 넣어도 여기서 고정이 되어버리네요;;;

    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/modules/comment/comment.model.php#L394-L406

     

    게시판 관리 > 추가 설정 > 댓글 부분에서 '승인 후 공개' 옵션을 '승인'으로 바꿔보시겠어요?
    (아, 근데 이렇게 하면 정작 게시판에서는 댓글 자리 남기기가 안 될 수도 있겠네요ㅜㅜ)

    (위젯에서 댓글 모듈의 getNewestCommentList 함수를 가져다 쓰는 게 아니라 새로 쿼리를 만드는 게 나을 수도 있겠어요)

  • profile profile

    승인 후 공개로 하니 위젯에서 안뜨고 댓글 자리남기기도 되어있긴합니다. (기존에 제가 쓰고 자리남겼던 댓글 그대로 남아있는것으로 봐서)
    근데 모든 댓글을 승인할 여력이 없네요ㅠㅜ

     

    댓글 자리 남기기가 안 될 수도 있겠네요ㅜ라고적어주신것처럼 바로 삭제되어버립니다

    심지어 같은 게시물에 기존에 댓글 자리남기기 했었던 댓글까지 삭제 되어버렸습니다 

  • profile profile

    다시 원복하시구요;;;

     

    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/widgets/content/content.class.php#L199-L202

    이 부분을 다음과 같이 수정하면 왠지 될 것 같아요. 적어도 조금 더 다듬거나요.

    content 위젯이어서 그나마 코어 수정의 부담이 덜하긴 하지만, 그래도 코어 수정은 코어 수정이니 마음이 착잡합니다;;;

     

    // check if module_srl is an array.
    if(isset($obj->module_srl) && is_array($obj->module_srl))
    {
        $obj->module_srl = implode(',', $obj->module_srl);
    }
    $obj->status = 1;
    
    $_output = executeQuery('comment.getNewestCommentList', $obj);
    if(!$_output->toBool())
    {
        return;
    }
    
    $comment_list = $_output->data;
    if($comment_list)
    {
        if(!is_array($comment_list))
        {
            $comment_list = array($comment_list);
        }
    
        $output = [];
        foreach($comment_list as $key => $attribute)
        {
            if(!$attribute->comment_srl)
            {
                continue;
            }
    
            $oComment = NULL;
            $oComment = new commentItem();
            $oComment->setAttribute($attribute);
    
            $output[$key] = $oComment;
        }
        $_output->data = $output;
    }
    
    if(!is_array($output) || !count($output)) return;

     

  • profile profile
    와~ 말씀 주신 코드로 변경하니 삭제 댓글은 안뜨네요. 감사합니다.
    말씀주신것처럼 나름 위젯이지만 코어에 포함된 기본 위젯이니 깃허브 통해서 반영되면 더 좋겠네요.
  • profile profile
    근데 이게 관리자에 따라서는 댓글 위젯에 삭제 표시를 원하는 경우도 있을 수 있어서 코어에 이슈를 넣어야 할지는 판단이 잘 안 섭니다;;;
  • profile profile

    말씀 주신 것처럼 최신 댓글 추출에 원하는사람이 있을 수도 있긴 있겠네요.

    다른 위젯도 수정하려고했는데 코드를 열어보니 제범위를 넘어섰네요.

    추천수 댓글 정렬은 포기하고 기본 위젯 명칭을 살짝 바꿔서 다른 위젯명으로 만들어서 사용하겠습니다.

    도움주셔서 감사합니다. 

  • profile profile
    라이믹스 개발팀은 XE 개발팀마냥 이슈넣는다고 혼내지 않으니 ㅎㅎ 편하게 이슈 올려주셔도 될겁니다
  • profile profile
    혹시 걸리는 부분이 있을까 해서 조금 애매하기는 한데 그럼 바로 이슈 등록하러 갑니다요 ㅎㅎㅎ
  • profile profile
    일은 제가 벌리고 뒷처리는 윤삼님이 ㅠㅠ
  • profile profile

    내용 정리를 잘 했나 모르겠습니다.
    https://github.com/rhymix/rhymix/issues/2035
    문과 출신인데도 한국어는 어려워요;;;;

     

    덧. 근데 위젯에서 status를 1로 고정시키는 방식이 바람직하기만 한 것은 아니어서, 코어 개발진이 comment 모듈의 status 관련 건의를 수용한다 해도 위젯의 경우는 위젯 설정(예. '공개된 댓글만 수집'처럼)을 통한 경우에만 status를 1로 고정시키는 게 좋을 것 같기는 해요.

    즉, comment 모듈도 일부 수정해야 하고(목록 만드는 쿼리 포함), 위젯도 일부 수정해야 해서, 개발진으로서는 피곤하실 수 있겠다는 생각이 듭니다;;;