에러 페이지 제외
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.3 |
공부겸 애드온으로 이것저것 해보는 중인데
팝업을 전체 페이지에 띄우게 설정해놨는데 확인해보니 에러 페이지에도 뜹니다.
에러페이지는 제외하고 싶은데 검색해보니 마땅한 자료를 찾지 못해서 조언 부탁 드립니다.
다른 곳에서는 is_page, is_404 이런식으로 쓰는거 같은데 라이믹스에서는 undefined function으로 떠서
비슷한 기능을 하는 코드가 있을까요?
<?php
if(is_page('http_status_code')) return;
.
.
.
?>
댓글 9
이렇게 해 보세요.
다양하게 해봤는데 안되는거면 다른 부분이 문제겠죠~?
if (http_response_code(404)) return;
404에러, 403 에러 같은경우 이미 라이믹스에서 에러 난경우라면 moduleHandler 또는 ModuleObject클래스 단위에서 실행이 안되고 멈추는경우가 있을 수 있습니다.
올려주신 is_page 같은경우 워드프레스의 내부 함수로 보여지고요..
403이나 404같은 페이지야 뜨는건 당연할텐데 님이 말씀하신 애드온에서 그 PHP파일에서 실행되는지 보라는겁니다.
해당 애드온이 실행이 정상적으로 잘 되는지 부터 검사하고, 해당 애드온에서 정상적으로 에러를 처리하기 전인지, 후인지 보셔야할거예요.
예를들어 애드온의 실행시점에 따라 실행순서가
에러처리전
애드온처리
에러처리 후
이러면 당연히 에러코드를 정상적으로 가져올 수 없는 상황이며
에러 처리전
에러처리 후
에드온처리
이경우에는 에드온처리 <- 하는 부분이 실행조차 안할 수 있습니다
after_module_proc 시점에 실행되는 애드온이라면 $this->getError() 로 에러 여부를 파악할 수 있습니다. 0이 아닌 값이 나온다면 에러 상황입니다.
before_display_content 시점이라면 $oModule->getError() 입니다.
혹시 제가 잘못 된 방향으로 계속 보고 있는 거 같아 파일 올려보니 조언 부탁 드립니다.
수정본 올려드립니다.
before_display_content 안에 if 문을 넣어야 되는군요.
와우! 잘 됩니다 ㅠㅠ 오늘도 배워갑니다. 항상 감사합니다.