로그인 상태에서는 동작하지 않고, 로그아웃 상태에서만 동작하길래
위와 같이 addon.php 파일의 일부 조건만 주석 처리하니까 로그아웃, 로그인 상태에서 모두 동작합니다
called_position !== 'before_display_content' 조건이 어떤 조건이길래 로그인 상태에서만 동작하지 않았던 것일까요?
PHP | PHP 7.2 |
---|---|
CMS | Rhymix |
로그인 상태에서는 동작하지 않고, 로그아웃 상태에서만 동작하길래
위와 같이 addon.php 파일의 일부 조건만 주석 처리하니까 로그아웃, 로그인 상태에서 모두 동작합니다
called_position !== 'before_display_content' 조건이 어떤 조건이길래 로그인 상태에서만 동작하지 않았던 것일까요?
before_display_content - 결과 출력 이전 : 모듈의 결과물과 레이아웃의 적용을 끝내고 출력하기 바로 이전을 의미합니다.
라고 되어 있네요
http://www.xeschool.com/xe/addons_the_basis_of_addon
!= 을 안쓰고 !== 를 왜 썻는지 모르겠네요.
뜻은
$a !== $b Not identical $a가 $b와 같지 않거나, 같은 자료형이 아니면 TRUE. (PHP 4에서 추가)
$called_position과 'before_display_content'는 모두 문자열이기 때문에 !== 로 비교하는 것이 옳습니다.
!= 는 1, '1', true를 모두 똑같이 취급하기 때문에 숫자나 참/거짓 값을 비교할 때나 쓰는 거고요.
물론 이 경우에는 != 나 !== 나 동일한 효과입니다만, 문자열은 !== 로 비교하는 습관을 들이는 것이 좋아요^^
해당 부분 삭제하시면 애드온이 반복적으로 실행될 리스크가 있을 거예요. 물론 return 넘겨주는 다른 조건들이 있긴 하지만요. 리소스 낭비 가능성이 있는 거죠;;;;
제작자분이 호출시점을 그렇게 잡은 건 나름의 이유가 있어서일 텐데요. 다른 애드온 등 충돌 가능성이 서드파티 자료들을 하나씩 꺼보시면서 점검하시는 게 좋을 것 같아요.