Cú pháp template v1 (cũ)
Template v1 là cú pháp có từ thời XE. Phần lớn tài nguyên hiện có được làm bằng cú pháp này, nên tài liệu này tổng hợp để phục vụ bảo trì và tham khảo. Tài nguyên mới hãy làm bằng Cú pháp template v2.
Xuất giá trị
{$variable}
{$object->method()}
{$array[$key]}Nếu có khoảng trắng ngay sau dấu ngoặc nhọn đầu tiên hoặc có xuống dòng ở giữa thì sẽ không hoạt động ({ $name } không được xuất ra).
Bộ lọc giống v2.
{$var|lower|escape}
{$timestamp|date:'Y-m-d H:i'}
{$number|number_format}Điều kiện và lặp: kiểu chú thích HTML
<!--@if($condition)-->
<div>참</div>
<!--@else-->
<div>거짓</div>
<!--@endif-->
<!--@foreach($list as $key => $item)-->
<li>{$item->title}</li>
<!--@endforeach--><!--@for(...)--> <!--@while(...)--> cũng theo cách tương tự.
Kiểu thuộc tính: cond / loop
Đây là cú pháp đặc trưng nhất của v1. Gắn điều kiện, lặp vào thẻ dưới dạng thuộc tính.
<div cond="$is_logged">로그인 상태에서만 보임</div>
<li loop="$list => $key, $item">{$item->title}</li>Cũng có thể gắn chính giá trị thuộc tính một cách có điều kiện.
<option value="foo" selected="selected"|cond="$val === 'foo'">FOO</option>
<input type="checkbox" checked="checked"|cond="$item->checked" />Khi muốn gom lại mà không cần thẻ, dùng <block> (cú pháp này không được hỗ trợ trong v2).
<block cond="$show">
여러 요소를 한 번에
</block>Mã PHP
{@ $foo = 'bar'}
{@
$foo = 'bar';
if ($condition):
$enabled = true;
endif;
}Lưu ý: {@ ... } chỉ khớp đến dấu } đầu tiên. Nếu dùng khối ngoặc nhọn (if (...) { ... }) trong mã thì sẽ bị cắt. Hãy dùng kiểu if (...): / endif;.
Nhúng và tải tài nguyên
<include target="_header.html" />
<include target="^/common/tpl/refresh.html" /> <!--// ^ 는 사이트 루트 -->
<include target="_promo" cond="$show_promo" />
<load target="css/skin.css" />
<load target="css/skin.css" media="print" index="20" />
<load target="js/skin.js" type="body" />
<unload target="js/old.js" /><!--#include(...)-->, <!--%import(...)-->, <!--%load_js_plugin(...)--> là cách ghi cũ hơn, đừng dùng mới.
Chú thích
<!-- 출력에 남는 일반 HTML 주석 -->
<!--// 출력에서 제거되는 템플릿 주석 -->Tính năng tự động (chung cho v1 và v2)
- Tự chuyển đổi đường dẫn tài nguyên: khi dùng đường dẫn tương đối như
<img src="img/icon.png" />, nó được chuyển thành đường dẫn tuyệt đối tính theo đường dẫn skin khi xuất ra. - Tự chèn vào form:
<form method="post">được tự gắn các trường hidden cần thiết như mid, act, CSRF. Nếu đặtruleset="name"thì quy tắc kiểm tra cũng được liên kết. Để tắt tự chèn, dùngrx-autoform="false"; để chỉ bỏ error_return_url, dùngno-error-return-url="true". - Tự thoát ký tự: nếu khai báo
<config autoescape="on" />ở đầu tệp, mọi đầu ra{$var}đều được thoát ký tự. Các tệp cũ không khai báo sẽ không được thoát ký tự, nên hãy cẩn thận khi xuất dữ liệu người dùng nhập.
Quan hệ với v2
- Cú pháp v1 vẫn tiếp tục hoạt động, và ngay trong tệp v2, một phần thuộc tính
cond(điều kiện của<include>), đầu ra{$var}, mã{@ }vẫn tương thích. - Ngược lại, trong tệp v1 các directive v2 như
@ifkhông hoạt động. Tiêu chí là tệp có khai báo@version(2)ở dòng đầu hay không. - Khi sửa skin v1 có sẵn, hãy sửa nguyên bằng v1, và khuyến nghị chuyển sang v2 khi làm lại quy mô lớn.