XE에서 사용되는 트리거에 대해서 설명한 문서입니다.
XE에서는 모듈의 실행 도중에 동작 제어가 필요한 경우 트리거(Trigger) 라는 기능을 사용합니다.
트리거를 이용하여 모듈을 수정하지 않고 새로운 모듈로 만들어 동작 제어 및 기능 추가 등을 할 수 있습니다.
예) 글 작성 시 설정된 포인트 지급
ModuleHandler::triggerCall('트리거 이름', '호출 시점(Called Position) ', 트리거의 매개변수로 사용될 객체);
Called Position : after
매게변수 : $this->module_info (모듈 정보)
모듈을 초기화한 후 호출하게 되는 트리거입니다.
Called Position : after
매게변수 : $oModule (모듈 객체)
모듈을 실행한 후 호출하게 되는 트리거입니다.
Called Position : before
매게변수 : $output (출력 결과물)
레이아웃이 씌워지기 전에 호출하게 되는 트리거입니다.
Called Position : after
매게변수 : $content (출력 결과물)
모든 출력 결과물이 완성된 후 호출하게 되는 트리거입니다.
Called Position : before
메게변수 : $obj (넘어온 문서 정보)
문서를 등록하기 전에 호출하게 되는 트리거입니다.
Called Position : after
메게변수 : $obj (문서 등록 후의 최종적인 문서 정보)
문서를 등록한 후에 호출하게 되는 트리거입니다.
Called Position : before
메게변수 : $obj (수정하게 될 문서 정보)
문서를 수정하기 전에 호출하게 되는 트리거입니다.
Called Position : after
메게변수 : $obj (문서 수정 후의 최종적인 문서 정보)
문서를 수정한 후에 호출하게 되는 트리거입니다.
// Module Controller 인스턴스 생성
$oModuleController = &getController('module');
// 트리거 등록
$oModuleController->insertTrigger('트리거 이름', '모듈 이름', '호출할 메소드가 속한 인스턴스의 종류', '호출할 메소드(Called Method)', '호출 시점 (Called Position)');
호출할 메소드가 속한 인스턴스의 종류 - View, Model, Controller 등
/ Module Controller 인스턴스 생성
$oModuleController = &getController('module');
// 트리거 삭제
$oModuleController->deleteTrigger('트리거 이름', '모듈 이름', '호출할 메소드가 속한 인스턴스의 종류', '호출할 메소드(Called Method)'+ '+ ', '호출 시점 (Called Position)');
트리거의 삭제 방법은 트리거의 등록과 동일합니다.