묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[애드온]글 작성 후의 act는 어떤 것인가요?
2012.02.26 08:16
새로운 글을 썼을 때만 곧바로 메일로 본문 내용을 보내고 싶습니다.
애드온으로 제작하려는데,
<?php
if(!defined("__ZBXE__")) exit();
if(Context::getResponseMethod() != 'HTML') return;
$result_msg = "실패";
if($called_position == 'after_module_proc' && Context::get('act') == 'procBoardInsertDocument') {
메일전송;
$result_msg = "성공";
}
if($called_position == 'before_display_content') {
$output=preg_replace("/<\!--AfterDocument\(([0-9]*),([0-9\-]*)\)-->/i" , "<div style=\"text-align:center;\">".$result_msg."</div><!--AfterDocument($1,$2)-->", $output);
}
?>
이런 식으로 해보는데, 계속 '실패'만 나오네요.
XE 버전은 1.5.1.8 입니다.
애드온 로직에 문제가 있습니다.
$result_msg 변수값에 성공이라는 값이 정상적으로 들어가도
글을 작성한 후 새로고침을 하기 때문에 최종적으로 $result_msg 변수에는 실패라는 값이 들어가는 것입니다.
세션에 원하는 값을 저장하고 출력해주면 정상적으로 작동합니다.
<?php
if(!defined("__ZBXE__")) exit();
if(Context::getResponseMethod() != 'HTML') return;$_SESSION['result_msg'] = "실패";
if($called_position == 'after_module_proc' && Context::get('act') == 'procBoardInsertDocument') {
메일전송;
$_SESSION['result_msg'] = "성공";
}
if(Context::getResponseMethod() != 'HTML') return;
if($called_position == 'before_display_content' && $_SESSION['result_msg']) {
$output=preg_replace("/<\!--AfterDocument\(([0-9]*),([0-9\-]*)\)-->/i" , "<div style=\"text-align:center;\">".$_SESSION['result_msg']."</div><!--AfterDocument($1,$2)-->", $output);
}
?>