Cú pháp template trong Xenforo

Bài viết sẽ hướng dẫn các bạn về cú pháp template của XenForo. Đọc xong bài viết này các bạn sẽ hiểu một cách cơ bản về cú pháp template của xenforo.

Nếu các bạn hay vọc vào template của xenforo để ý thì có thể thấy rằng tất cả các template function của xenforo đều bắt đầu bằng xen:. Ví dụ: {xen:link}

1. Biến trong XenForo template.
– Trước khi vào tìm hiểu các hàm trong template của xenforo. Mình sẽ nói qua về khái niệm biến. Biến là đại lượng được đặt tên, dùng để lưu giữ giá trị và giá trị có thể thay đổi trong quá trình thực hiện chương trình.
– Cú pháp:

Mã:
{$<ten-bien>} hoặc {$<ten-mang>.<phan-tu>}

– Quy tắc đặt tên biến
+ Ký tự bắt đầu phải là một chữ cái, còn các ký tự tiếp theo có thể là chữ số, gạch dưới, chữ cái. Ngoài mấy thứ kể trên ra, bạn không nên thêm bết cứ thứ gì khác vào tên biến!
+ Không được có khoản trắng
+ Các biến phân biệt chữ hoa chữ thừơng, vì thế ANH sẽ khác với Anh cũng như anh, để tránh rắc rối, ta nên dùng chữ thường cho tất cả tên biến và dùng dấu _ để phân cách thay cho khoảng trắng

2. Hiển thị các cụm từ (phrase).
– Để hiển thị 1 cụm từ (phrase) chúng ta sử dụng cú pháp

Mã:
{xen:phrase <phrase-varname>}

– phrase-varname là tên biến. Ví dụ. Khi bạn vào ACP>>Appearance>>Phrases>>Create New Phrase. Tạo một cụm từ với nội dung (phrase text) là: “Chào mừng các bạn đến với vietxf.org” và varname (Title) là “welcome_vietxf”. Và bạn sử dụng lệnh

Mã:
{xen:phrase welcome_vietxf}

trong template. Thì khi xem trên website các bạn sẽ thấy dòng chữ: “Chào mừng các bạn đến với vietxf.org”

3. “<xen:require />”
– Hàm này có các thuộc tính sau: <type> = “<location>”
– <xen:require /> có chức năng tương tự như hàm require_once(<location>); trong PHP. Có nghĩa là nó cho phép chúng ta chèn code từ một template khác.
– Các kiểu dữ liệu chúng ta có thể dùng: css/js.
– Tất cả các hàm <xen:require phải được kết thúc bằng />
– Ví dụ:

Mã:
<xen:require css="vietxf_org.css" />

4. “<xen:include />”
– Hàm này có các thuộc tính tương tự như hàm require ở trên. Nhưng nó chỉ cho phép chèn một template và location là tên của template.
– Sự khác biệt lớn nhất giữ require và include là include có thể cho phép bạn khai báo template variable (biến).
– Ví dụ:

Mã:
<xen:include template="vietxfdotorg">
  <xen:set var="$TemplateVar">TemplateVarValue</xen:set>
</xen:include>

– Tất cả các hàm <xen:include cần phải được kết thúc bằng /> hoặc ></xen:include>

5. “<xen:set></xen:set>”
– Hàm này cho phép chúng ta khai báo biến trong một template.
– Cách sử dụng: <xen:set var=”$<tenbien>”><giatricuabien></xen:set>
– Cách đặt tên biến giống như cách đặt tên biến ở PHP. Ví dụ

PHP:
$varname = not good
$_VarName = good

– Tất cả các hàm <xen:set> cần phải được kết thúc bằng </xen:set>

6. “<xen:if>{<xen:else />}</xen:if>”
– Cú pháp:

Mã:
<xen:if <type>=”<condition>”>
true statments
  {
  <xen:else />
false statments
  }
  </xen:if>

– <xen:else /> là tuỳ chọn (có thể có, có thể không)
– Ví dụ:

Mã:
<xen:if is=”{$variable)”>
  Biến “variable” tồn tại
  <xen:else />
  Biến “variable" không tồn tại
  </xen:if>

– Bạn có thể tạo ra một biểu thức điểu kiện kép bằng cách sử dụng toán tử ‘OR’ và ‘AND’
– Để kiểm tra một biến, chúng ta có thể sử dụng “{$variable} <toán tử> ‘<giá trị>'”.
+ Toán tử bao gồm: !=, <=, <, >, >=, <>.
+ Giá trị có thể là số hoặc chuối.
– Trong trường hợp có nhiều lệnh If lồng nhau thì else sẽ gắn liền với if gần nhất.

7. “<xen:foreach></xen:foreach>”
– Hàm <xen:foreach> có chức năng tương tự như vòng lặp ở trong PHP.
– Các thuộc tích của nó bao gồm “loop” và “value”.
– Ví dụ:

Mã:
<xen:foreach loop="$foo" value="$item">
statement block
</xen:foreach>

8. “<xen:title></xen:title>”
– Hàm <xen:title> có chức năng xác định “Tiêu đề” của trang.
– Cách sử dụng:

Mã:
<xen:title>Your title</xen:title>

9. “{$visitor.csrf_token_page}”
Ngoài ra, có một chú ý cho các bạn khi tạo một template có chứa form. Xenforo có hỗ trợ một security token để chống lại các tấn công CSRF(Cross site request forgery). Để sử dụng security token {$visitor.csrf_token_page} trong form của bạn thêm dòng sau:

Mã:
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />

– Cross site request forgery là gì?
Nó là phương pháp mượn tay người để thực hiện một hành động không cho phép. Ví dụ, để có thể xóa một bài viết trên diễn đàn, một member có thể mượn tay của một moderator để làm việc đó vì member không đủ chủ quyền nhưng moderator lại đủ chủ quyền để thực hiện hành động này. (theo conmale)

Tuts by Alucar (VietXF.OrG)

Leave a Reply

Your email address will not be published. Required fields are marked *