Extra Form
PHP PHP 7.2
CMS Rhymix 2.0

애드온에서

글쓴이가 로그인한 회원과 같은 인물인 경우에 애드온이 동작이 안되게 처리 하고 싶은데 

 

잘 안되어서 문의 합니다.

 

 $document_srl = Context::get('document_srl');

 if($called_position == 'after_module_proc') {

    if($logged_info->member_srl = $document_srl) return;

}

또는

 if($called_position == 'after_module_proc') {

    if($logged_info->member_srl = $oDocument->document_srl) return;

}

둘다 안먹히는데 혹시 놓치고 있는게 있을까요?

  • ?
    $oDocument->get(member_srl) == $logged_info->member_srl
    이렇게 하면 될거 같네요
  • ?
    이게 안되신다면 위에 if 문들에 = 들을 ==로 바꿔보시고요
  • ? profile

    $oDocument 선언도 없는것 같아요.

    document_srl 가지고 게시글 정보 구하고 거기서 글쓴이 member_srl 을 구해서 비교해야 하지 않을가 싶어요.

  • profile ?
    • skyo
    • 질문기여자
    $logged_info = Context::get('logged_info');
    $oDocument = Context::get('oDocument');
    $document_srl = Context::get('document_srl');

    선언 되어 있는데 잘 안되네요. 감사합니다.
  • profile

    $oDocument = getModel('document')->getDocument(Context::get('document_srl');

    if($oDocument->get('member_srl') == Context::get('logged_info')->member_srl) return;

    $oDocument 도 마찬가지지만$logged_info 역시 애드온에서는 빈 변수일뿐입니다. Context::get('logged_info') 로 로그인 정보를 가져와야 합니다.

    여기에서 Context::get('is_logged') 을 활용해서 로그인까지 채크 하는 방법도 있겠습니다.

  • profile ?
    • skyo
    • 질문기여자
    답변주신 모든분들에게 감사 드립니다. 아무래도 제 시스템에 문제가 있나 봅니다.
    [02-Apr-2022 22:28:05 Etc/GMT-9] PHP Exception: ParseError #0 "syntax error, unexpected ';', expecting ')'" in addons/addon_jump_document/addon_jump_document.addon.php on line 12
    #0 /home/www/classes/module/ModuleHandler.class.php(110): include()
    #1 /home/www/index.php(51): ModuleHandler->__construct()
  • ? profile
    제가 적어드린 코드 첫번째줄에서 닫는게 한번 더 들어가야 하네요

    $oDocument = getModel('document')->getDocument(Context::get('document_srl'));

    해당 에러는 신텍스 에러로 문법이 틀렷다는거니 보통 갈호이나 이런 부분에서 오타가 있는 경우이니 그런것을 위주로 찾아보시면 됩니다. (PHPSTorm이나 sublime text같은 에디터에서 PHP인텔리젠 지원된다면 문법이 틀렷을때 표시해주기도 합니다.)
  • profile ?
    • skyo
    • 질문기여자
    잘됩니다. 감사합니다. 이참에 sublime 으로 갈아타야겠습니다
  • ? profile
    sublime 보단 vscode에 PHP관련 플러그인 설치해서 쓰는걸 추천합니다.