유저블록 모듈에 의해 정지 기간 인 회원은 쪽지를 차단하려고 하는데 잘 안됩니다.
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
<?php
if(!defined("__XE__")) exit();
if($called_position != 'before_module_proc') return;
if($this->module == 'admin'
|| $this->module != 'communication'
|| $this->grant->is_admin) return;
$logged_info = Context::get('logged_info');
if(!$logged_info) return;
if( $this->act != 'procCommunicationSendMessage') return;
if( Context::get('logged_info')->is_admin!='Y' )
{
$args->target_member_srl = $logged_info->member_srl;
$args->expdate = date("YmdHis");
$output = executeQuery('userblock.getMemberCheckBan', $args);
return $output->data;
if($output->data->count > 0 )
{
alertScript('정지기간에는 쪽지를 발송 할 수 없습니다.');
closePopupScript();
exit;
}
}
?>
애드온 php는 이렇게 제작을 했구요.
모듈의 쿼리파일은 이렇게 되어 있습니다.
<query id="getMemberCheckBan" action="select">
<tables>
<table name="userblock" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="target_member_srl" var="target_member_srl" />
<group pipe="and">
<condition operation="null" column="expdate" pipe="or" />
<condition operation="excess" column="expdate" var="expdate" pipe="or" />
</group>
</conditions>
</query>
댓글 8
return $output->data;
이걸 제거해보세요.
코드에서는 크게 문제될 만한게 없어 보입니다.
그런데 말씀하신대로 쿼리를
expdate excess 로 고쳐서 애드온에 폴더로 올려서 적용해보니 여전히 쪽지가 그대로 나가네요.
if($output->data->count > 0 ) 이부분이 문제가 있을까요 ?
executeQuery를 executeQueryArray로 바꿔보시고
$output->data->count > 0를
count($output->data) > 0
으로 바꿔보세요.