질문/조언질답게시판

에러 페이지 제외

Extra Form
PHP PHP 7.3
CMS Rhymix 2.x

공부겸 애드온으로 이것저것 해보는 중인데

팝업을 전체 페이지에 띄우게 설정해놨는데 확인해보니 에러 페이지에도 뜹니다.

에러페이지는 제외하고 싶은데 검색해보니 마땅한 자료를 찾지 못해서 조언 부탁 드립니다.

 

다른 곳에서는 is_page, is_404 이런식으로 쓰는거 같은데 라이믹스에서는 undefined function으로 떠서

비슷한 기능을 하는 코드가 있을까요?

 

<?php

if(is_page('http_status_code')) return;

.

.

.

?>

  • profile
    if (http_response_code() >= 400)
    이렇게 해 보세요.
  • profile profile
    알려주신 코드가 안되서 아래처럼 했는데 아래는 또 404, 일반페이지 모두 안 뜨네요ㅠ
    다양하게 해봤는데 안되는거면 다른 부분이 문제겠죠~?

    if (http_response_code(404)) return;
  • profile profile
    해당 PHP가 실행되는지부터 검사해보세요.

    404에러, 403 에러 같은경우 이미 라이믹스에서 에러 난경우라면 moduleHandler 또는 ModuleObject클래스 단위에서 실행이 안되고 멈추는경우가 있을 수 있습니다.
  • profile profile
    에러 페이지는 잘 뜹니다. 다른 분 자료 보니 이 팝업 같은 경우는 404 페이지에서는 안 뜨도록 설계되어 있네요,. 차이점을 비교해보면서 공부해봐야 할거 같습니다. (https://xetown.com/point_contents/1323383)
  • profile profile

    올려주신 is_page 같은경우 워드프레스의 내부 함수로 보여지고요..

    403이나 404같은 페이지야 뜨는건 당연할텐데 님이 말씀하신 애드온에서 그 PHP파일에서 실행되는지 보라는겁니다.

    해당 애드온이 실행이 정상적으로 잘 되는지 부터 검사하고, 해당 애드온에서 정상적으로 에러를 처리하기 전인지, 후인지 보셔야할거예요.

    예를들어 애드온의 실행시점에 따라 실행순서가

    에러처리전
    애드온처리
    에러처리 후

    이러면 당연히 에러코드를 정상적으로 가져올 수 없는 상황이며

    에러 처리전
    에러처리 후
    에드온처리

    이경우에는 에드온처리 <- 하는 부분이 실행조차 안할 수 있습니다

  • profile

    after_module_proc 시점에 실행되는 애드온이라면 $this->getError() 로 에러 여부를 파악할 수 있습니다. 0이 아닌 값이 나온다면 에러 상황입니다.

     

    before_display_content 시점이라면 $oModule->getError() 입니다.

  • profile

    혹시 제가 잘못 된 방향으로 계속 보고 있는 거 같아 파일 올려보니 조언 부탁 드립니다.

    Atachment
    첨부
  • profile profile

    수정본 올려드립니다.

    before_display_content 안에 if 문을 넣어야 되는군요.

    Atachment
    첨부
  • profile profile

    와우! 잘 됩니다 ㅠㅠ 오늘도 배워갑니다. 항상 감사합니다.