묻고답하기
php function이 없는 것을 호출하면...
2014.05.19 23:49
에러가 뜨지 않고 그냥 없는 체~ 할 수 있는 방법이 있을까요?
현재 애드온으로 특정 function을 사용할 수 있도록 만들었는데..
당연히 애드온을 사용중에는 아무런 문제가 없지만
애드온을 끄면 그 함수를 사용한 곳은 먹통이 되어버립니다.(화이트스크린 ㅎㅎ)
당연한 이야기겠지만..
혹시 없는 함수 호출시 그냥 pass 되도록 하는 방법이 있을까요?
댓글 17
-
LI-NA
2014.05.19 23:54
-
애니즌
2014.05.20 00:04
error rating ..?
-
sejin7940
2014.05.19 23:58
$oAddonModel->isActivatedAddon 함수를 이용해 if 문을 거는 방법도 있습니다.
-
애니즌
2014.05.20 00:05
그게 애드온에서 정의한 함수를
게시판 스킨에서 직접 호출합니다. 그래도 위의 방식으로 할 수 있는 건가용?
-
sejin7940
2014.05.20 00:15
해당 애드온이 활성화 되어있는지를 검사하는 함수이니까
활성화가 상태에서만, 애드온 내부의 함수를 사용하게 if 문 을 걸면 되겠죠
-
애니즌
2014.05.20 00:18
아 활성화하지 않아도 사용되게끔 하는 거로군요 ! 새로운 걸 배워갑니다 :) 감사합니다.
-
sejin7940
2014.05.20 00:20
제가 위에 답변에 오타를 썼네요 ㅡㅡ; 고쳐놨습니다
해당 애드온이 활성화 되어있는지를 확인하는 함수입니다.
활성화 되어있는 경우에만, 스킨 내부의 그 함수가 작동하게하면 되겠죠?
-
퍼니엑스이
2014.05.20 00:09
저 같은 경우, 해당 함수를 사용하는 곳을 아래와 같이 IF 문으로 감싸서 사용합니다.
if(function_exists('함수명'))
{함수명(...);
} -
애니즌
2014.05.20 00:14
헛.. 무슨 문제인지 모르겠는데 말씀하신 것처럼 하면
그 안에 있는
{함수명(....)}가
코드 자체를 뿜어버리네용 ...ㄷㄷ
-
LI-NA
2014.05.20 00:16
스킨에서 쓸때는
<!--@if 를 이용해야겠죠...?
-
애니즌
2014.05.20 00:17
물론 그렇게 썼습니다..ㄷㄷ
-
LI-NA
2014.05.20 00:21
그럼 그냥 @로 해보죠.
@getTh~~
-
애니즌
2014.05.20 00:33
그렇게 해보니까.. 레이아웃을 못불러오고.. 에러나는 부분부터 안뜨더라구요..-_-;;;
어차피 사용안할 리가 없어서 문제는 없는데
이걸 배포하게 되면 분명 누군가는 필요에 의해 끄는 경우가 있을 것 같아서
대응을 해야할 것 같긴한데... 흠..
-
LI-NA
2014.05.20 01:04
아 맞다... 그.. 컴파일러에서 @이걸 못하겠군요. {@ } 이 문법이랑 겹쳐서 ㅡㅡ
역시 function_exists 혹은 활성화된 애드온 목록을 불러오는 방법밖에는 없겠네요.
$is_function = function_exists(~~~) 이런 식으로 해보세요...
if($is_function) ...
-
애니즌
2014.05.20 10:01
음.. 아니면 일반 text로 바꾸고 그걸 애드온이 캐치해서 replace 시키는 방법으로 접근하는 게 나을까요?
-
LI-NA
2014.05.20 11:22
Context::set 으로 특정 변수 하나를 세팅해서 그 값을 검사해도 좋을 것 같습니다.
-
애니즌
2014.05.20 11:59
네 그게 가장 간편하겠네요 ㅎㅎ
답변 감사합니다:)
함수를 error rating 무시로 호출하면 됩니다.