7.1 버전에서는 되는데 7.3에서는 작동을 안하네요..
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.3 |
게시판별로 댓글 작성제한을 레벨별로 걸어두었는데
7.1에서는 정상작동하던게 7.3에서는 작동을 안하네요..
// 레벨 제한
$module_info = Context::get("module_info");
$module_srl = $module_info->module_srl;
if (in_array($module_srl, array(게시판 모듈srl)))
{
// 포인트 & 레벨 정보 불러오기
$oPointModel = &getModel('point');
$point = $oPointModel->getPoint($logged_info->member_srl);
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$level = $oPointModel->getLevel($point, $config->level_step);
// 어드민은 레벨제한 없이 작성가능
$notadmin = $logged_info->is_admin != 'Y';
// 본인 글에서는 레벨 제한 없이 작성가능
$nothuman = $obj->member_srl != $oDocument->get('member_srl');
$subject = $obj->content;
$pattern = "/감사합니다[.!]*|사랑합니다[.!]*/";
preg_match($pattern, $subject, $matches);
if ($level<5 && $notadmin && $nothuman && !in_array($subject, $matches)) return new BaseObject(-1, '해당게시판에서는 5레벨 미만은 지정된 문구 외에 작성하실 수 없습니다.');
}
$module_info = Context::get("module_info");
$module_srl = $module_info->module_srl;
if (in_array($module_srl, array(게시판 모듈srl)))
{
// 포인트 & 레벨 정보 불러오기
$oPointModel = &getModel('point');
$point = $oPointModel->getPoint($logged_info->member_srl);
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$level = $oPointModel->getLevel($point, $config->level_step);
// 어드민은 레벨제한 없이 작성가능
$notadmin = $logged_info->is_admin != 'Y';
// 본인 글에서는 레벨 제한 없이 작성가능
$nothuman = $obj->member_srl != $oDocument->get('member_srl');
$subject = $obj->content;
$pattern = "/감사합니다[.!]*|사랑합니다[.!]*/";
preg_match($pattern, $subject, $matches);
if ($level<5 && $notadmin && $nothuman && !in_array($subject, $matches)) return new BaseObject(-1, '해당게시판에서는 5레벨 미만은 지정된 문구 외에 작성하실 수 없습니다.');
}
이런식으로 작성을 해놨습니다.
7.1에서 테스트했을때는 정상적으로 작동을 했는데
7.3에서는 계속 지정해둔 오류문구가 뜨네요.. 조건에 안맞는것도 아닌데..
댓글 3
if ($level<5 && $notadmin && $nothuman && !in_array($subject, $matches))
조건이 4개나 있는데 그 중 어느 것이 참으로 나와서는 안 되는 상황에서 참으로 나오는지 각각 따로 찍어보시면 되겠습니다. 개인적으로는 마지막 조건이 가장 의심스럽네요. 정규식 체크 후에 in_array 함수로 또다시 체크하는 방식은 생전 처음 봅니다. ㅎㅎ
서버 환경이 바뀌었다면 정규식 마지막 슬래시 뒤에 u를 붙여서 유니코드 처리를 해주어야 할 수도 있습니다.
$obj->content != "감사합니다"
조건을 다 지우고 위에 조건만 넣어봤는데도 안되네요.
7.1에서는 정상적으로 작동하던게 갑자기 안되니 뭔가 머리로 이해가 안되네요.. ㅋㅋ
그리고 생전 처음보는이유는.. 제가 그냥 머릿속으로 생각한걸 그대로 적은거라서 ..
이쪽엔 지식이 아주 적다보니 ㅋㅋ..
html 태그를 제거하고 출력시키면 되네용.. 호홓