Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

애드온으로 글 등록완료 시점에

작성한 게시글의 카테고리 srl을 alret으로 알려주는걸 해보고 싶은데

아래처럼 코드를 작성해서 테스트해봐도 마음처럼 동작을 안하네요

 

아래 코드를 작성해보았는데 동작 시점에 문제가 있을까요?

 

if($called_position == 'before_module_init' && Context::get('act') == 'procBoardInsertDocument'){ 
  $category_srl = Context::get('category_srl');

  $this->stop($category_srl);

}

 

  • profile

    1. procBoardInsertDocument는 백그라운드에서 글을 저장하는 AJAX 액션입니다. 백그라운드 액션이기 때문에 여기서는 화면에 무엇을 표시할 수가 없습니다. (에러메시지 반환만 가능)


    2. before_module_init은 말 그대로 "모듈 실행을 시작하기 전"이니까, "등록완료" 시점이라는 의미에 더더욱 안 맞지요. 아직 글 등록을 시작하지도 않은 것입니다. 이 시점에는 $this->stop이 먹히지도 않습니다. 아직 시작하지도 않은 모듈을 정지하라뇨. ㅎㅎ

     

    3. 글 등록완료 시점으로서 화면에 뭔가를 띄울 수 있는 시점이라고 한다면, procBoardInsertDocument가 완료된 후 글읽기 화면으로 리다이렉트되어서, 그 글을 처음으로 읽게 되는 dispBoardContent 액션입니다.

  • ?
    답변 감사합니다~
    그렇다면 if procBoardInsertDocument" && $called_position == "after_module_proc" 안에 if dispBoardContent 를 트리거하여도 문제없을까요?
  • ? profile

    act가 procBoardInsertDocument인 경우, act가 dispBoardContent일 수는 없겠지요. act는 하나뿐이니까요. 참이 될 수가 없는 조건입니다.

    proc은 화면에 뭔가를 표시할 수 없는 시점이니 아예 무시하고.... act가 dispBoardContent인 경우, $oDocument가 존재하고, 조회수가 0이고, 작성 후 몇 초 이내이고, 작성자와 동일한 회원/IP에서 접속, 등의 조건으로 "글쓰기 직후 최초 글읽기" 시점을 잡아 보세요.