3. Template Handler

Views 1458 Votes 0 2011.01.17 12:27:32
SMaker *.22.160.57
Subject Developer Date
3. Template Handler (current) SMaker 2011.01.17 12:27:32
Restore
<h3 id="h1274768123255">Template Handler</h3><p><span class="external">[</span><span class="external">http://doc.xpressengine.com/classTemplateHandler.html|</span><span class="external">http://doc.xpressengine.com/classTemplateHandler.html - </span><span class="external">class 구조]</span><br></p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 템플릿 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>변수의 내용 출력 및 함수의 결과물 출력 {와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">{$변수이름}&nbsp;{$변수이름[key]}</div><ul>
<li>함수 또는 변수의 설정 {와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다. 이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</li>

</ul><div class="code" code_type="xml" editor_component="code_highlighter">{@&nbsp;$a&nbsp;=&nbsp;1}<br>
{@&nbsp;print&nbsp;$a}</div><ul><li>조건절의 사용 (if)</li></ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@if(조건문1)--&gt;<br>
...<br>
&lt;!--@elseif(조건문2)-&gt;<br>
...<br>
&lt;!--@else--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>조건절의 사용 (switch)</li>
</ul><blockquote class="citation"><p>이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo')--&gt;<br>
...<br>
&lt;!--@break--&gt;<br>
&lt;!--@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><p>switch 문의 예외 문법<br><br>'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'<br><br>'@break@default'&nbsp; =&gt; 'break; default :'<br></p><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;<br>
...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>foreach, for등의 반복문 사용</li>
</ul><div style="position: relative; z-index: 999; top: 0px; left: 0px; display: block;" class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@foreach($변수&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$val)--&gt;<br>
{$key}&nbsp;-&nbsp;{$val}<br>
&lt;!--@end--&gt;</div><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--2for($i=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;100;&nbsp;$i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</div><ul>
<li>다른 template 파일 include</li>
</ul><blockquote class="citation"><p>템플릿 파일 내에서 또다른 템플릿 파일을 include 할 수 있습니다.
이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><blockquote class="citation"><p>템플릿 파일에서 공용으로 사용되는 부분이 있다면 공용으로 사용되는 부분을 개별 파일로 include 하게 하는 것이 유지/보수에 유리합니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</div><ul>
<li>css 파일 import</li>
</ul><blockquote class="citation"><p>css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가됩니다.
이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./css/style.css")--&gt;</div><ul>
<li>자바스크립트 파일의 import</li>

</ul><blockquote class="citation"><p>자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="자바스크립트파일"&gt;&lt;/script&gt; 코드가 추가됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./js/test.js")--&gt;</div><ul><li>자바스크립트 필터(Xml Js Filter) 파일의 import</li></ul><blockquote class="citation"><p>자바스크립트 필터(Xml Js Filter)를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이 때 경로를 지정하지 않으면 현재의 템플릿 파일(template file)의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./filter/text.xml")--&gt;</div><ul>
<li>주석</li>
</ul><blockquote class="citation"><p>HTML에 출력하지 않도록 감출 수 있습니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--//&nbsp;HTML에&nbsp;출력되지&nbsp;않는&nbsp;주석&nbsp;--&gt;<br>
&lt;!--//&nbsp;템플릿&nbsp;파일에서만&nbsp;볼&nbsp;수&nbsp;있는&nbsp;주석입니다&nbsp;--&gt;</div><ul>
<li>기타 경로에 대한 처리</li>
</ul><blockquote class="citation"><p>템플릿에서 이미지 태그의 src값이 http:// 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 위치(path)에서 찾도록 합니다.
작업 PC에서 스킨 등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</p></blockquote>
SMaker 2011.01.16 22:08:05
Restore
<h3 id="h1274768123255">Template Handler</h3><p><span class="external">[</span><span class="external">http://doc.xpressengine.com/classTemplateHandler.html|</span><span class="external">http://doc.xpressengine.com/classTemplateHandler.html - </span><span class="external">class 구조]</span><br></p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>변수의 내용 출력 및 함수의 결과물 출력 {와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">{$변수이름}&nbsp;{$변수이름[key]}</div><ul>
<li>함수 또는 변수의 설정 {와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다. 이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</li>

</ul><div class="code" code_type="xml" editor_component="code_highlighter">{@&nbsp;$a&nbsp;=&nbsp;1}<br>
{@&nbsp;print&nbsp;$a}</div><ul><li>조건절의 사용 (if)</li></ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@if(조건문1)--&gt;<br>
...<br>
&lt;!--@elseif(조건문2)-&gt;<br>
...<br>
&lt;!--@else--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>조건절의 사용 (switch)<br>
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo')--&gt;<br>
...<br>
&lt;!--@break--&gt;<br>
&lt;!--@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p><p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p><p style="margin-left: 2em;">'+
'+
'@break@default'&nbsp; =&gt; 'break; default :'</p><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;<br>
...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>foreach, for등의 반복문 사용</li>
</ul><div style="position: relative; z-index: 999; top: 0px; left: 0px; display: block;" class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@foreach($변수&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$val)--&gt;<br>
{$key}&nbsp;-&nbsp;{$val}<br>
&lt;!--@end--&gt;</div><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--2for($i=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;100;&nbsp;$i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</div><ul>
<li>다 른 template 파일 include<br>
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</div><ul>
<li>css 파일 import</li>
</ul><blockquote class="citation"><p>css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./css/style.css")--&gt;</div><ul>
<li>자바스크립트 파일의 import</li>

</ul><blockquote class="citation"><p>자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="자바스크립트파일"&gt;&lt;/script&gt; 코드가 추가됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./js/test.js")--&gt;</div><ul><li>xml js filter 파일의 import</li></ul><blockquote class="citation"><p>xml js filter를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./filter/text.xml")--&gt;</div><ul>
<li>
<p>주석<br>
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul><ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
SMaker 2010.05.25 15:33:03
Restore
<h3 id="h1274768123255">Template Handler</h3><p><span class="external">[</span><span class="external">http://doc.xpressengine.com/classTemplateHandler.html|</span><span class="external">class 구조 보기]</span><br></p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>변수의 내용 출력 및 함수의 결과물 출력 {와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">{$변수이름}&nbsp;{$변수이름[key]}</div><ul>
<li>함수 또는 변수의 설정 {와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다. 이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</li>

</ul><div class="code" code_type="xml" editor_component="code_highlighter">{@&nbsp;$a&nbsp;=&nbsp;1}<br>
{@&nbsp;print&nbsp;$a}</div><ul><li>조건절의 사용 (if)</li></ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@if(조건문1)--&gt;<br>
...<br>
&lt;!--@elseif(조건문2)-&gt;<br>
...<br>
&lt;!--@else--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>조건절의 사용 (switch)<br>
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo')--&gt;<br>
...<br>
&lt;!--@break--&gt;<br>
&lt;!--@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p><p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p><p style="margin-left: 2em;">'@break@default'&nbsp; =&gt; 'break; default :'</p><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;<br>
...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>foreach, for등의 반복문 사용</li>
</ul><div style="position: relative; z-index: 999; top: 0px; left: 0px; display: block;" class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@foreach($변수&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$val)--&gt;<br>
{$key}&nbsp;-&nbsp;{$val}<br>
&lt;!--@end--&gt;</div><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--2for($i=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;100;&nbsp;$i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</div><ul>
<li>다 른 template 파일 include<br>
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</div><ul>
<li>css 파일 import</li>
</ul><blockquote class="citation"><p>css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./css/style.css")--&gt;</div><ul>
<li>자바스크립트 파일의 import</li>

</ul><blockquote class="citation"><p>자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="자바스크립트파일"&gt;&lt;/script&gt; 코드가 추가됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./js/test.js")--&gt;</div><ul><li>xml js filter 파일의 import</li></ul><blockquote class="citation"><p>xml js filter를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./filter/text.xml")--&gt;</div><ul>
<li>
<p>주석<br>
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul><ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
SMaker 2010.05.25 15:32:42
Restore
<h3 id="h1274768123255">Template Handler</h3><p><span class="external">[class 구조 보기:http://doc.xpressengine.com/classTemplateHandler.html]</span><br></p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>변수의 내용 출력 및 함수의 결과물 출력 {와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">{$변수이름}&nbsp;{$변수이름[key]}</div><ul>
<li>함수 또는 변수의 설정 {와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다. 이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</li>

</ul><div class="code" code_type="xml" editor_component="code_highlighter">{@&nbsp;$a&nbsp;=&nbsp;1}<br>
{@&nbsp;print&nbsp;$a}</div><ul><li>조건절의 사용 (if)</li></ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@if(조건문1)--&gt;<br>
...<br>
&lt;!--@elseif(조건문2)-&gt;<br>
...<br>
&lt;!--@else--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>조건절의 사용 (switch)<br>
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo')--&gt;<br>
...<br>
&lt;!--@break--&gt;<br>
&lt;!--@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p><p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p><p style="margin-left: 2em;">'@break@default'&nbsp; =&gt; 'break; default :'</p><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;<br>
...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>foreach, for등의 반복문 사용</li>
</ul><div style="position: relative; z-index: 999; top: 0px; left: 0px; display: block;" class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@foreach($변수&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$val)--&gt;<br>
{$key}&nbsp;-&nbsp;{$val}<br>
&lt;!--@end--&gt;</div><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--2for($i=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;100;&nbsp;$i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</div><ul>
<li>다 른 template 파일 include<br>
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</div><ul>
<li>css 파일 import</li>
</ul><blockquote class="citation"><p>css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./css/style.css")--&gt;</div><ul>
<li>자바스크립트 파일의 import</li>

</ul><blockquote class="citation"><p>자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="자바스크립트파일"&gt;&lt;/script&gt; 코드가 추가됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./js/test.js")--&gt;</div><ul><li>xml js filter 파일의 import</li></ul><blockquote class="citation"><p>xml js filter를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./filter/text.xml")--&gt;</div><ul>
<li>
<p>주석<br>
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul><ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
SMaker 2010.05.25 15:32:15
Restore
<h3 id="h1274768123255">Template Handler</h3><p><a href="http://doc.zeroboard.com/classTemplateHandler.html" title="http://doc.zeroboard.com/classTemplateHandler.html" class="external">http://doc.xpressengine.com/classTemplateHandler.html</a> (class 구조)</p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>변수의 내용 출력 및 함수의 결과물 출력 {와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">{$변수이름}&nbsp;{$변수이름[key]}</div><ul>
<li>함수 또는 변수의 설정 {와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다. 이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</li>

</ul><div class="code" code_type="xml" editor_component="code_highlighter">{@&nbsp;$a&nbsp;=&nbsp;1}<br>
{@&nbsp;print&nbsp;$a}</div><ul><li>조건절의 사용 (if)</li></ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@if(조건문1)--&gt;<br>
...<br>
&lt;!--@elseif(조건문2)-&gt;<br>
...<br>
&lt;!--@else--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>조건절의 사용 (switch)<br>
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo')--&gt;<br>
...<br>
&lt;!--@break--&gt;<br>
&lt;!--@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p><p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p><p style="margin-left: 2em;">'@break@default'&nbsp; =&gt; 'break; default :'</p><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;<br>
...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</div><ul>
<li>foreach, for등의 반복문 사용</li>
</ul><div style="position: relative; z-index: 999; top: 0px; left: 0px; display: block;" class="code" code_type="xml" editor_component="code_highlighter">&lt;!--@foreach($변수&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$val)--&gt;<br>
{$key}&nbsp;-&nbsp;{$val}<br>
&lt;!--@end--&gt;</div><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--2for($i=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;100;&nbsp;$i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</div><ul>
<li>다 른 template 파일 include<br>
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</div><ul>
<li>css 파일 import</li>
</ul><blockquote class="citation"><p>css 파일을 사용하고자 할 때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고, 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./css/style.css")--&gt;</div><ul>
<li>자바스크립트 파일의 import</li>

</ul><blockquote class="citation"><p>자바스크립트 파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="자바스크립트파일"&gt;&lt;/script&gt; 코드가 추가됩니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./js/test.js")--&gt;</div><ul><li>xml js filter 파일의 import</li></ul><blockquote class="citation"><p>xml js filter를 사용하고자 할 때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.
이 때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p></blockquote><div class="code" code_type="xml" editor_component="code_highlighter">&lt;!--%import("./filter/text.xml")--&gt;</div><ul>
<li>
<p>주석<br>
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul><ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
SMaker 2010.05.25 15:30:19
Restore
<h3 id="h1274768123255">Template Handler</h3><p><a href="http://doc.zeroboard.com/classTemplateHandler.html" title="http://doc.zeroboard.com/classTemplateHandler.html" class="external">http://doc.xpressengine.com/classTemplateHandler.html</a> (class 구조)</p><p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br>
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p><ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul><h3 id="h1274768123257">템플릿 문법</h3><ul>
<li>
<p>변수의 내용 출력 및 함수의 결과물 출력<br>
{와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</p>
<ol class="code">
<li>{$변수이름}<br>
{$변수이름[key]}</li>
</ol>
</li>
</ul><ul>
<li>
<p>함수 또는 변수의 설정<br>
{와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다.<br>
이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</p>
<ol class="code">
<li>{@ $a = 1}<br>
{@ print $a}</li>
</ol>
<p>&nbsp;</p>
</li>
<li>
<p>조건절의 사용 (if)</p>
<ol class="code">
<li>&lt;!--@if(조건문)--&gt;<br>
...<br>
&lt;!--@elseif--&gt;<br>
...</li>
<li>&lt;!--@else--&gt;</li>
<li>...<br>
&lt;!--@end--&gt;</li>
</ol>
</li>
</ul><ul>
<li>조건절의 사용 (switch)<br>
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul><ol class="code" style="margin-left: 2em;">
<li>
<p style="margin-left: 2em;">&lt;!--@switch($var)--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@case('foo')--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">...</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@break--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@default--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">...</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@end--&gt;</p>
</li>
</ol><p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p><p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p><p style="margin-left: 2em;">'@break@default'&nbsp; =&gt; 'break; default :'</p><ol class="code" style="margin-left: 2em;">
<li>
<p style="margin-left: 2em;">&lt;!--@switch($var)--&gt;<br>
&lt;!--@case('foo1')--&gt;<br>
...<br>
&lt;!--@break@case('foo2')--&gt;</p>
<p style="margin-left: 2em;">...<br>
&lt;!--@break@default--&gt;<br>
...<br>
&lt;!--@end--&gt;</p>
</li>
</ol><ul>
<li>
<p>foreach, for등의 반복문 사용</p>
<ol class="code">
<li>&lt;!--@foreach($변수 as $key =&gt; $val)--&gt;<br>
{$key} - {$val}<br>
&lt;!--@end--&gt;</li>
<li><br>
&lt;!--@for($i = 0; $i &lt; 100; $i++)--&gt;<br>
{$i}<br>
&lt;!--@end--&gt;</li>
</ol>
</li>
</ul><ul>
<li>다 른 template 파일 include<br>
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul><ol class="code" style="margin-left: 2em;">
<li>&lt;!--#include("./include.html")--&gt;<br>
&lt;!--#include("./common/tpl/include.html")--&gt;</li>
</ol><ul>
<li>
<p>css 파일 import<br>
css파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가 됩니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./css/style.css")--&gt;</li>
</ol>
</li>
</ul><ul>
<li>
<p>js 파일의 import<br>
js파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="js파일"&gt;&lt;/script&gt; 코드가 추가됩니다. 이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./js/test.js")--&gt;</li>
</ol>
<p>&nbsp;</p>
</li>
<li>
<p>xml js filter파일의 import<br>
xml js filter를 사용하고자 할때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.<br>
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./filter/test.xml")--&gt;</li>
</ol>
</li>
</ul><ul>
<li>
<p>주석<br>
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul><ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
SMaker 2010.05.25 15:17:25
Restore
<h3>Template Handler</h3>
<p><a href="http://doc.zeroboard.com/classTemplateHandler.html" title="http://doc.zeroboard.com/classTemplateHandler.html" class="external">http://doc.zeroboard.com/classTemplateHandler.html</a> (class 구조)</p>
<p>&nbsp;</p>
<p>XE는 몇 가지 특별한 기능을 사용하기 위해서 자체 Template 엔진을 이용합니다.<br />
smarty등의 Template 엔진처럼 정해진 문법으로 작성된 템플릿 파일을 PHP 파일로 컴파일 후에 include만 하기 때문에 효율적으로 동작하게 됩니다.</p>
<p>&nbsp;</p>
<ul>
<li>클래스 파일 위치 : ./classes/template/TemplateHandler.class.php</li>
<li>
<p>동작방법</p>
<ul>
<li>인자로 넘겨받은 template_path, template_filename을 이용하여 템플릿 파일을 찾음</li>
<li>해당 템플릿 파일이 있다고 판단되면 컴파일된 파일을 찾음<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(컴파일된 파일의 위치 : ./files/cache/template_compiled/{md5(path+filename}.compiled.php)</li>
<li>컴파일된 파일이 없으면 source template file을 읽은후 parsing, 파일로 저장</li>
<li>compiled template file을 include</li>
</ul>
</li>
<li>템플릿 파일로 변수 할당하기
<ul>
<li>템플릿을 지정하기 전에 Context::set('변수이름', $변수) 와 같은 방법으로 context setting을 하게 되면 템플릿에서는 {$변수이름}과 같이 세팅된 변수를 사용할 수 있습니다.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<h3>템플릿 문법</h3>
<ul>
<li>
<p>변수의 내용 출력 및 함수의 결과물 출력<br />
{와 $ 사이의 space character나 개행문자등이 없이 붙어 있어야 합니다.</p>
<ol class="code">
<li>{$변수이름}<br />
{$변수이름[key]}</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>
<p>함수 또는 변수의 설정<br />
{와 $ 사이에 @ 를 붙이면 결과를 return하지 않습니다.<br />
이 특징을 이용해서 변수설정이나 함수의 실행, php코드 사용을 할 수 있습니다.</p>
<ol class="code">
<li>{@ $a = 1}<br />
{@ print $a}</li>
</ol>
<p>&nbsp;</p>
</li>
<li>
<p>조건절의 사용 (if)</p>
<ol class="code">
<li>&lt;!--@if(조건문)--&gt;<br />
...<br />
&lt;!--@elseif--&gt;<br />
...</li>
<li>&lt;!--@else--&gt;</li>
<li>...<br />
&lt;!--@end--&gt;</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>조건절의 사용 (switch)<br />
이 문법에는 문제가 있으니 사용에 주의해주시기 바랍니다. 개선토록 하겠습니다.</li>
</ul>
<ol class="code" style="margin-left: 2em;">
<li>
<p style="margin-left: 2em;">&lt;!--@switch($var)--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@case('foo')--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">...</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@break--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@default--&gt;</p>
</li>
<li>
<p style="margin-left: 2em;">...</p>
</li>
<li>
<p style="margin-left: 2em;">&lt;!--@end--&gt;</p>
</li>
</ol>
<p>&nbsp;</p>
<p style="margin-left: 2em;">switch문은 아래와 같은 예외적인 문법을 제공합니다.</p>
<p style="margin-left: 2em;">'@break@case(...)'&nbsp; =&gt;&nbsp; 'break; case(...) :'</p>
<p style="margin-left: 2em;">'@break@default'&nbsp; =&gt; 'break; default :'</p>
<ol class="code" style="margin-left: 2em;">
<li>
<p style="margin-left: 2em;">&lt;!--@switch($var)--&gt;<br />
&lt;!--@case('foo1')--&gt;<br />
...<br />
&lt;!--@break@case('foo2')--&gt;</p>
<p style="margin-left: 2em;">...<br />
&lt;!--@break@default--&gt;<br />
...<br />
&lt;!--@end--&gt;</p>
</li>
</ol>
<p>&nbsp;</p>
<ul>
<li>
<p>foreach, for등의 반복문 사용</p>
<ol class="code">
<li>&lt;!--@foreach($변수 as $key =&gt; $val)--&gt;<br />
{$key} - {$val}<br />
&lt;!--@end--&gt;</li>
<li><br />
&lt;!--@for($i = 0; $i &lt; 100; $i++)--&gt;<br />
{$i}<br />
&lt;!--@end--&gt;</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>다 른 template 파일 include<br />
template 파일 내에서 다른 template파일을 include할 수 있습니다.<br />
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</li>
</ul>
<ol class="code" style="margin-left: 2em;">
<li>&lt;!--#include("./include.html")--&gt;<br />
&lt;!--#include("./common/tpl/include.html")--&gt;</li>
</ol>
<p>&nbsp;</p>
<ul>
<li>
<p>css 파일 import<br />
css파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 link code가 추가 됩니다.<br />
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./css/style.css")--&gt;</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>
<p>js 파일의 import<br />
js파일을 사용하고자 할때 아래 문법을 이용하면 html 태그의 &lt;head&gt; .. &lt;/head&gt; 사이에 &lt;script type="text/javascript" src="js파일"&gt;&lt;/script&gt; 코드가 추가됩니다. 이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./js/test.js")--&gt;</li>
</ol>
<p>&nbsp;</p>
</li>
<li>
<p>xml js filter파일의 import<br />
xml js filter를 사용하고자 할때 아래 문법을 이용하면 지정된 필터를 컴파일하고 해당 문서에 필터를 적용하게 됩니다.<br />
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.</p>
<ol class="code">
<li>&lt;!--%import("./filter/test.xml")--&gt;</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>
<p>주석<br />
HTML에 출력하지 않도록 감출 수 있습니다.</p>
<ol class="code">
<li>&lt;!--// HTML에 출력되지 않는 주석 --&gt;</li>
</ol>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>기타 경로에 대한 처리 template에서 이미지 태그의 src값이 <span class="ext-link">http://</span> 나 / 로 시작하지 않는다면 해당 템플릿이 요청된 path에서 찾도록 합니다. 작업PC에서 스킨등의 작업을 하고 그대로 서버에 올리면서 테스트하실 수 있습니다.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
2009.07.27 14:23:11