before_module_proc 에서는 $output = new Object(-1, $con); 로 확인이 되지 않아, 검증이 되지 않는다.
그럴 때, before_module_proc에서 확인한 변수를 저장한 뒤, after_module_proc에서 확인하는 편법(꼼수)를 활용할 수 있다.
$is_logged = Context::get('is_logged');
$logged_info = Context::get('logged_info');
if(Context::get('act')=='procBoardInsertDocument' && $called_position == 'before_module_proc') {
$con = Context::get('content');
if($logged_info->user_id==""){
$logged_id="nologin";
}else{
$logged_id=$logged_info->user_id;
}
if (!preg_match("/".$logged_id."/i", $addon_info->idlist)) {//ID체크
$ex1 = $_SERVER["REMOTE_ADDR"];
if(!preg_match("/".$ex1."/i", $addon_info->iplist))//IP체크
exit;
}
}
if(Context::get('act')=='procBoardInsertDocument' && $called_position == 'after_module_proc') {
$output = new Object(-1, $con);
}
위 코드는 idlist 와 iplist 에 등록되었는지 확인하는 부분이다. 암튼, 들어온 content를 필터링 할 때, 제대로 되었는지 확인하는 용도로 쓸 수 있다.
스팸필터 제작시, 글이 등록 된 뒤에 동작하도록 했는데, 이제는 위와 같은 방법으로 디버깅 한 뒤, 등록 전에 exit 로 차단시킬 수 있다. 문제는 message를 출력해 주고 싶다는 건데, 그건 조금더 확인해 봐야하겠다. 글쓰기 process를 진행하지 않고, alert을 띄우는 법이 뭐가 있을까?
댓글 달기