XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

https://github.com/huhani/xe-gamezot/blob/master/gamezot.controller.php#L219-L220

 

댓글 삭제시 지급되었던 포인트 차감이 이루어지지 않아 이 모듈에서 포인트 차감까지 진행할 수 있도록 고치고 싶은데요.

 

가장 좋은 것은 현재 댓글이 위치한 모듈에 설정된 포인트를 확인 후 해당 포인트만 차감했으면 좋겠지만 일단 답변은 일괄적으로 차감할 수 있는 답변이 있어 이것을 적용했는데 차감이 되지 않아 문의 합니다.

 

 

위 링크표시 된 220라인 아래에..

 

$oPointController = getController('point');
$oPointController->setPoint($logged_info->member_srl, $깎을포인트값, 'minus');

$oPointController->setPoint(Context::get('logged_info')->member_srl, 50, 'minus');

 

이렇게 고치니 차감이 되네요..

 

그럼 이렇게 고정된 값 말고 현재 모듈에 포인트가 설정된 값을 확인해서 해당 값 만큼 차감 하려면 어떻게 바꿔야 할까요??

 

 

  • profile
    AeiresyAeiresy 2016.12.26 15:23:23

    //다운로드 트리거
    //if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;

    $logged_info = Context::get('logged_info');
    $oModuleModel = getModel('module');
    $mid = Context::get('mid');

    $module_srl = $oModuleModel->getModulesrlbymid($mid);
    $member_srl = $logged_info->member_srl;
    $config = $oModuleModel->getModuleConfig('point');
    $module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
    $point = $module_config['download_file'];
    if(strlen($point) == 0 && !is_int($point)) $point = $config->download_file;

  • profile
    웹지기 2016.12.26 15:24:32
    감사합니다.


    //다운로드 트리거
    //if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;

    이부분이 필요한건가요??
  • profile
    AeiresyAeiresy 2016.12.26 15:25:15
    삭제해도 됩니다.
  • profile
    웹지기 2016.12.26 15:26:08

    근데 코드를 살펴보니 제가 넣으려는 곳은 의도가 댓글 삭제시 이미 댓글 작성시 지급받았던 포인트 만큼 차감하려는 의도거든요.. 근데 다운로드 포인트 설정치를 차감시키려는거 같아서요. insert_comment 이런식인가로 바꿔야 하는건가요 ?

  • profile
    AeiresyAeiresy 2016.12.26 15:27:39

    포인트 모듈이니 var_dump($module_config); 아니면 print_r($module_config);
    를 해보면 중간에 댓글 작성시 지급되는 포인트도 들어있을겁니다.
    확인해보시고 안나오시면 다시 말씀해주세요.

     

    XE를 안깔아놔서 확인을 못해서요.

  • profile
    웹지기 2016.12.26 15:33:46
    $logged_info = Context::get('logged_info');
    $oModuleModel = getModel('module');
    $mid = Context::get('mid');

    $module_srl = $oModuleModel->getModulesrlbymid($mid);
    $member_srl = $logged_info->member_srl;
    $config = $oModuleModel->getModuleConfig('point');
    $module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
    $point = $module_config['insert_comment'];
    if(strlen($point) == 0 && !is_int($point)) $point = $config->insert_comment;


    이렇게 했는데 설정된 포인트 차감이 되지 않네요.
  • profile
    AeiresyAeiresy 2016.12.26 15:30:28
    $point = $module_config['insert_comment'];로 하시면 되네요.
  • profile
    AeiresyAeiresy 2016.12.26 15:34:38
    //로그인 사용자 instance 정보
    $logged_info = Context::get('logged_info');
    $member_srl = $logged_info->member_srl;

    //포인트 모듈에서 기본으로 설정해둔 포인트값 가져오기(댓글 작성)
    $mid = Context::get('mid');
    $oModuleModel = getModel('module');
    $module_srl = $oModuleModel->getModulesrlbymid($mid);
    $config = $oModuleModel->getModuleConfig('point');
    $module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
    $point = $module_config['insert_comment']; //댓글작성
    if(strlen($point) == 0 && !is_int($point)) $point = $config->download_file; //모듈 다운로드 설정값을 가져오지 못할경우 config에서 가져옴

    $oPointController = getController('point');
    $oPointController->setPoint($member_srl, $point, 'minus');

    이렇게 수정하시면 됩니다.
  • profile
    웹지기 2016.12.26 15:36:25
    아래 다운로드 설정값을 가져오지 못할경우... 이게 뭔지 알 수 있을까요 ?
  • profile
    AeiresyAeiresy 2016.12.26 15:37:53

    댓글 작성 포인트값이 integer값이 아닐경우(못받아올경우) 가장 기본적으로 설정되있는 포인트값을 가져옵니다.

  • profile
    웹지기 2016.12.26 15:39:46
    거기에 insert_comment 값이 들어가야 하는게 아닌가 해서요. 저희는 다운로드 포인트는 안쓰거든요.
  • profile
    AeiresyAeiresy 2016.12.26 15:41:01
    네 insert_comment로 하시면 됩니다.
    근데 사이트에 심각한 문제가 발생하지 않는다면 저 구문이 실행될 가능성은 적을겁니다.
  • profile
    웹지기 2016.12.26 15:44:14
    아.. 그런데 차감은 역시 안되네요....
    $oPointController = getController('point');
    $oPointController->setPoint(Context::get('logged_info')->member_srl, 50, 'minus');

    이렇게 직접 포인트를 지정하면 차감은 잘 되는 것은 확인했구요...
  • profile
    AeiresyAeiresy 2016.12.26 15:45:58
    잠시만요 XE에서 잠시 돌려볼게요
  • profile
    웹지기 2016.12.26 15:51:07
    이제 됩니다!
    $member_srl = Context::get('logged_info')->member_srl;

    이렇게 고치니 잘 되네요.

    감사합니다. 이제 이 모듈로 삭제된 댓글로 남기고 대댓글 달린 댓글 수정 못하게 하는 기능을 완벽히 사용할 수 있게 되었습니다.
  • profile
    AeiresyAeiresy 2016.12.26 15:54:05
    네 번창하시고 좋은하루되세요~
  • profile
    AeiresyAeiresy 2016.12.26 15:42:41
    아마 저 config 값이 ==> if(strlen($point) == 0 && !is_int($point)) $point = $config
    http://사이트 주소/index.php?module=admin&act=dispPointAdminConfig

    포인트 모듈에서 설정한 포인트값을 가져올겁니다.
  • profile
    고양이 2016.12.26 16:57:32
    이게 라이믹스에는 적용되어있는게 맞는거죠?
  • profile
    웹지기 2016.12.26 17:00:36
    제한적으로 되어 있을걸요?
    이 모듈의 기능은
    글 삭제시 -> 삭제된 글입니다 로 변경됩니다.(즉, 실제 삭제가 이루어지지 않고 내용을 지워버리며 첨부를 날립니다.)

    댓글 삭제시 -> 글 삭제와 동일한 작동을 합니다.

    삭제된 글,댓글에 대한 추가 작업 금지 -> 추천이나 여타 작업이 안되게 막아줍니다.

    대댓글이 달린 댓글은 수정이 안되도록 막아줍니다.


    라이믹스를 사용하지 않아 잘 모르겠습니다만 라이이믹스 기본 제공 기능은 댓글 삭제시 삭제된 댓글로 표시해주는 것 외 더 있는지는 모르겠네요.
  • profile
    고양이 2016.12.26 17:52:12

    대댓글 있을떄 수정안되는건 좀 너무 자유를 침해하는것 같아서 고민이네요 적용할지말지 ㅎ

    항상 웹지기님 덕분에 좋은팁 얻어갑니다.

  • profile
    웹지기 2016.12.26 18:02:52 Files첨부 (1)

    여기 묻고 답하기의 경우도 그렇게 되어 있지만 저는 개인적으로는 침해는 아니라고 생각하구요. 이 모듈에서는 수정은 금지하지만 아마 아차하고 미숙했던 댓글이라 생각해 삭제를 하면 삭제는 가능한 것으로 알고 있어요. 수정은 못하게 되어있구요. 그러니까 컨셉이 다른 의견이 달린 이후에는 내용을 바꿔서 전.후 상황을 달리 보이게 하지 말라는 의도이죠. 그럴거면 아예 삭제하라는 컨셉이요.

     

    comment.png

     

     


    아마 XE타운 묻고답하기는 대댓글 달리면 삭제도 안될 겁니다.

  • profile
    고양이 2016.12.27 09:17:54
    아 말씀을 들어보니 충분히 일리가 있네요 ㅎㅎ
  • profile
    웹지기 2016.12.26 18:03:40

    그리고 그거 고민이시라면 코드 열어보면 댓글수정 부분 있을거에요. 거기 주석처리 하시면 되요. 저희는 글 삭제시 삭제된글이라 남기는 것은 적용하기 싫어서 글 관련은 주석처리했어요.


위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...