질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS Rhymix 2.x

이미 스크랩된 게시글의 스크랩 버튼을 스크랩 삭제로 제공해주려고 하는데 잘못된 요청이 반환이 됩니다.

 

javascript:doCallModuleAction('member','procMemberDeleteScrap',{$document_srl})

 

위와 같이 스크랩 할때와 비슷하지만 act만 procMemberDeleteScrap 으로 했는데 이건 모듈에서 허용을 하지 않나요?

스크랩은 허용을 하고 삭제를 안한건지 .....  아니면 제가 잘못사용하거나 부족한 인수가 있는건지..

 

 

<action name="procMemberScrapDocument" type="controller" permission="member" />

<action name="procMemberDeleteScrap" type="controller" permission="member" />

 

모듈에는 이렇게 등록되어 있어 사용 가능해 보이긴 합니다.

  • profile

    https://github.com/rhymix/rhymix/blob/98bbe021548304d7e86994a5c34e0d481ac92801/common/js/common.js#L722-L732
    doCallModuleAction은 기본적으로 대상이 되는 srl을 target_srl로 넘겨줍니다.

    https://github.com/rhymix/rhymix/blob/a6ace52c9e25047f966eb83253526215936029b1/modules/member/skins/default/js/member.js#L131-L135
    하지만 스크랩 취소 액션은 document_srl 값으로 srl이 넘기도록 되어 있으므로 동작하지 않습니다. 위 코드는 멤버 스킨의 스크랩 취소 액션이니 참고하셔서 추가하시면 될것 같습니다.

    p.s.) doCallModuleAction이라고 되어 있으니 모든 act에 사용 가능해 보이지만 실제로는 exec_xml을 특정 형태로 하는 것에 불과합니다. 라이믹스는 이마저 내부적으로는 json으로 하므로 왠만한 동작은 exec_json을 직접 사용하시는게 나으실겁니다.

  • profile profile

    아직 살짝 어렵지만 취소에서는 안된다는 것으로 이해되니 말씀 하신 코드를 사용도록 해보겠습니다. 감사합니다.

     

    doCallModuleAction 의 srl 은 무조건 target_srl 이라는 점을 기억해야하는게 핵심이 되겠네요.

    exec_json('member.procMemberDeleteScrap', params, function() 은 해당 문서번호를 보내도 알아서 target_srl 을 찾아서 그걸 지우나봅니다.

    근데 이것도 아리송 한게 

     

    https://github.com/rhymix/rhymix/blob/a6ace52c9e25047f966eb83253526215936029b1/modules/member/member.controller.php#L398

     

    제가 미리 이 함수를 살펴봤을때 해당 문서번호로 지워주는 것 같았는데 좀더 공부해봐야 겠습니다.

  • profile profile
    https://github.com/rhymix/rhymix/blob/a6ace52c9e25047f966eb83253526215936029b1/modules/member/member.controller.php#L404

    여기에서 target_srl 을 불러오는게 아니라 document_srl 을 불러오고 있습니다.

    doCallModuleAction 함수에서만 특별히 target_srl 을 이용하고 있습니다.

    이를 댓글 및 게시글로 분리하여 전송하기 위해서 해당 타겟의 아이디를 가져오는 뜻으로 가져오는 것입니다.