http://doc.xpressengine.com/classTemplateHandler.html - class 구조
XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.
smarty등의 템플릿 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.
동작방법
{$변수이름} {$변수이름key}{@ $a = 1}
{@ print $a}<!--@if(조건문1)--> ... <!--@elseif(조건문2)-> ... <!--@else--> ... <!--@end-->
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.
<!--@switch($var)-->
<!--@case('foo')-->
...
<!--@break-->
<!--@default-->
...
<!--@end-->switch 문의 예외 문법
'@break@case(...)' => 'break; case(...) :'
'@break@default' => 'break; default :'
<!--@switch($var)-->
<!--@case('foo1')-->
...
<!--@break@case('foo2')-->
...
<!--@break@default-->
...
<!--@end--><!--@foreach($변수 as $key => $val)-->
{$key} - {$val}
<!--@end--><!--@for($i= 0; $i < 100; $i++)-->
{$i}
<!--@end-->템플릿 파일 내에서 또다른 템플릿 파일을 include 할 수 있습니다. 이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
템플릿 파일에서 공용으로 사용되는 부분이 있다면 공용으로 사용되는 부분을 개별 파일로 include 하게 하는 것이 유지/보수에 유리합니다.
<!--#include("./include.html")-->
<!--#include("./common/tpl/include.html")-->css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 <head> .. </head> 사이에 link code가 추가됩니다. 이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.
<!--%import("./css/style.css")-->자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 <head> .. </head> 사이에 <script type="text/javascript" src="자바스크립트파일"></script> 코드가 추가됩니다. 이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
<!--%import("./js/test.js")-->자바스크립트 필터(Xml Js Filter)를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다. 이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
<!--%import("./filter/text.xml")-->HTML에 출력하지 않도록 감출 수 있습니다.
<!--// HTML에 출력되지 않는 주석 --> <!--// 템플릿 파일에서만 볼 수 있는 주석입니다 -->
템플릿에서 이미지 태그의 src값이 http:// 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 위치(path)에서 찾도록 합니다. 작업 PC에서 스킨 등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.
.. 여긴 좀 알아듣겠네요 ㅜㅜ
foreach for 아래에 @for 이어야 할 것이 2for로 되어 있습니다