포럼
$XE_VALIDATOR_MESSAGE 변수처리에 대하여
2012.05.08 22:17
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}"> <p>{$XE_VALIDATOR_MESSAGE}</p> </div>
일반적으로 $XE_VALIDATOR_MESSAGE 변수는 위와 같이 마크업합니다.
$XE_VALIDATOR_MESSAGE 변수를 사용하면 태생적인 문제가 하나 있는데..
이 변수가 여러번 쓰이는 경우입니다.
예를 들어 위젯에서 1번, 모듈 스킨에서 1번 이렇게 쓰일 수 있습니다.
같은 경고메시지가 두 번 보여지게 됩니다.
더 머리아픈 경우는.. 둘 다 javascript alert 창으로 연결하면 경고메시지가 두 번 나옵니다.
향후 XE_VALIDATOR_MESSAGE 변수를 쓰지 않을 경우 이 변수가 들어간 모든 스킨의 보수비용도 나오겠지요..
(변수가 없으면 어차피 출력도 안될테니 옳은 말은 아니겠지만..)
일단 아래와 같은 마크업이 충돌을 방지하는 하나의 방법 같구요.
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}"> <p>{$XE_VALIDATOR_MESSAGE}</p> {@ Context::set("XE_VALIDATOR_MESSAGE", FALSE); } </div>
<div class="wfsr">^^</div> 처럼 레이어를 띄어주는 방식도 있는데, 경고창 역할을 템플릿에게 전가하는 방식에 고개가 갸우뚱 합니다. (XE 알림모듈 레이어 보기 좋던데요..)
$XE_VALIDATOR_MESSAGE 이 변수를 애드온에서 캐치하고 레이어로 띄어주는 것도 하나의 방법이겠네요. (어디까지나 임시방편)
아무튼 경고문구를 스킨이 아니라 Core 단에서 처리했으면 하고, 그 방법으로는 레이어가 어떨까 하는게 주 내용입니다.
.button .btn 클래스에 비할바는 못되지만 스킨제작하다보면 한번씩은 겪게될 문제입니다.
ps. http://www.premiumxe.com/205300 내용처럼 .button .btn 클래스에 xe_ 같은 prefix 라도 붙일 수는 없나요 -_-;
그러게요.. 모달창도 참 좋은데..