포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
XE로 개발하면서 가장 불편한 점
2014.03.25 23:58
템플릿 언어에서 변수 출력을 {}을 사용한다는 점이네요.
템플릿 언어를 쓰면 항상 문제를 일으킨다고 해도 과언이 아닙니다.
1. 인라인 자바스크립트도 마음대로 못 넣습니다. if 문에 중괄호도 못 넣습니다.
script 태그를 사용해서 HTML에 직접 자바스크립트를 넣을 때 조금만 잘못하면 오류가 납니다.
2. 가변 변수는 사용하지도 못합니다. 가변 변수가 가장 필요한 곳은 레이아웃과 위젯입니다.
가뜩이나 XE는 주로 오브젝트를 사용합니다. 그래서 가변 변수의 중요도는 높은데 그걸 사용하지 못해
레이아웃 똑같은 설정이 1번부터 10번까지 반복된다면 한 설정마다 하나하나 다 넣어줘야 합니다.
한줄이면 될 코드가 10줄이 되는거죠.
3. 템플릿을 JSON 형식으로 만들면 아주 유용하게 쓸수 있지만 직접 JSON 형식으로 하기엔 불가능합니다(이건 그나마 방법이 있더군요).
그리고... 또 많이 있었는데 막상 쓰려니 기억이 안 나네요.
이걸 고치면 헬게이트가 열리겠지만 언젠가는 바껴야할 문제라고 생각합니다.
중괄호는 다른 곳에서도 정말 많이 사용된다고 생각합니다.
<@xe
XE 템플릿 솰라솰라...
@>
이런 식은 어떤가요?
인라인 스크립트는 작성하지 마시고, 변수만 전달하도록 만들어주시면 될 거 같아요.
예시)
//<![CDATA[
var li = new Object();
li.use_cdn = {$li->use_cdn == 'Y' ? 'true' : 'false'};
li.layout_type = "{$li->layout_type}";
li.search_type = "{$li->search_type}";
li.menu_colorset = "{$li->menu_colorset}";
li.use_camera_slide = {$li->use_camera_slide == 'Y' ? 'true' : 'false'};
li.use_camera_slide_thumb = {$li->use_camera_slide_thumb == 'Y' ? 'true' : 'false'};
li.camera_slide_alignment = "{$li->camera_slide_alignment}";
li.camera_slide_advance = {$li->camera_slide_image_2 ? 'true' : 'false'};
li.use_jumbotron = {$li->jumbotron ? 'true' : 'false'};
//]]>