http://doc.zeroboard.com/classTemplateHandler.html (class 구조)
제로보드XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.
동작방법
변수의 내용 출력 및 함수의 결과물 출력
{와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.
함수 또는 변수의 설정
{와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다.
이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.
조건절의 사용 (if)
<!--@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, for등의 반복문 사용
css 파일 import
css파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 <head> .. </head> 사이에 link code가 추가 됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
js 파일의 import
js파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 <head> .. </head> 사이에 <script type="text/javascript" src="js파일"></script> 코드가 추가됩니다. 이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
xml js filter파일의 import
xml js filter를 사용하고자 할때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
주석
HTML에 출력하지 않도록 감출 수 있습니다.