5 câu lệnh điều kiện (Conditionals) trong XenForo Template mà mọi Admin cần biết để tự tùy biến giao diện

PVS

Super Moderator
Thành viên BQT
Bạn muốn ẩn quảng cáo với thành viên VIP? Muốn hiển thị một thông báo riêng chỉ trên điện thoại? Đừng vội thuê lập trình viên. Chỉ với vài dòng code "điều kiện" (xf:if) đơn giản trong hệ thống Template của XenForo, bạn có thể làm chủ hoàn toàn việc hiển thị nội dung cho từng đối tượng người dùng.

5 câu lệnh điều kiện (Conditionals) trong XenForo Template mà mọi Admin cần biết để tự tùy biế...jpg

Sức mạnh thực sự của XenForo không chỉ nằm ở Add-on, mà nằm sâu trong hệ thống Template (Mẫu giao diện). Tuy nhiên, nhiều Admin rất sợ đụng vào khu vực này vì nhìn thấy code là... chóng mặt.

Tin vui là: Bạn không cần phải là một chuyên gia PHP để tùy biến XenForo. Bạn chỉ cần hiểu logic đơn giản: "NẾU... THÌ..." (IF... THEN...).

XenForo sử dụng cú pháp template riêng (dựa trên HTML). Dưới đây là 5 câu lệnh điều kiện "quyền lực" nhất mà bạn có thể copy-paste để áp dụng ngay hôm nay.

1. Phân biệt "Khách" (Guest) và "Thành viên" (Member)​

Đây là nhu cầu kinh điển nhất. Bạn muốn khách truy cập nhìn thấy nút "Đăng ký ngay", còn thành viên đã đăng nhập thì không thấy nữa.

Code mẫu:
HTML:
<xf:if is="!$xf.visitor.user_id">
    <div class="notice">Bạn chưa đăng nhập. Hãy Đăng ký để xem nội dung ẩn!</div>
<xf:else />
    Chào mừng trở lại, {$xf.visitor.username}!
</xf:if>
  • Giải thích:!$xf.visitor.user_id nghĩa là "Nếu không có ID người dùng" (tức là chưa đăng nhập).

2. Chỉ hiển thị nội dung cho nhóm VIP (Usergroup Targeting)​

Bạn có một banner quảng cáo và muốn ẩn nó đi đối với nhóm thành viên VIP (ví dụ: nhóm có ID là 5 và 7) để tăng giá trị cho gói nâng cấp của họ.

Code mẫu:
HTML:
<xf:if is="!$xf.visitor.isMemberOf([5, 7])">
    <div class="ads-banner">
        Quảng cáo tại đây... (Nâng cấp VIP để tắt quảng cáo)
    </div>
</xf:if>
  • Mẹo: Bạn có thể tìm ID của nhóm thành viên trong Admin CP -> Groups.

3. Phân biệt Mobile và Desktop (Responsive Control)​

Năm 2026, trải nghiệm trên mobile là tiên quyết. Có những thành phần (ví dụ: một cái sidebar dài ngoằng) rất đẹp trên PC nhưng lại là thảm họa trên điện thoại. Hãy ẩn nó đi.

Code mẫu:
HTML:
<div class="block d-none d-md-block">
    Đây là nội dung chỉ hiện trên màn hình Desktop (từ iPad trở lên).
    Trên điện thoại nó sẽ biến mất.
</div>

<div class="block d-md-none">
   Đây là nội dung chỉ hiện riêng cho điện thoại.
</div>
  • Lưu ý: Đây thực ra không phải là code template của XenForo, mà là sử dụng các CSS class tiện ích có sẵn trong framework giao diện của XenForo (thường dựa trên Bootstrap). Cách này nhanh và hiệu quả hơn về mặt hiệu suất so với việc dùng code PHP để check thiết bị.

4. Chỉ hiện ở trang chủ (Home Page Only)​

Bạn muốn đặt một slider hoành tráng chào mừng, nhưng chỉ muốn nó hiện ở trang bìa forum, còn vào các bài viết con thì ẩn đi cho đỡ rối.

Code mẫu:
HTML:
<xf:if is="$template == 'forum_list'">
    <div class="hero-slider">Chào mừng đến với diễn đàn 2026!</div>
</xf:if>

5. Chỉ hiện cho chính tác giả bài viết (Author Only)​

Bạn muốn hiện một cái khung nhắc nhở "Đừng quên cập nhật bài viết này nhé" nhưng chỉ người viết bài đó mới nhìn thấy.

Code mẫu:
HTML:
<xf:if is="$post.user_id == $xf.visitor.user_id">
    <div class="author-note">
        Bạn là tác giả của bài viết này.
    </div>
</xf:if>

Lời kết: Quyền lực đi kèm trách nhiệm​

Hệ thống template rất mạnh mẽ, nhưng một lỗi sai cú pháp nhỏ (ví dụ quên đóng thẻ </xf:if>) cũng có thể làm trắng trang diễn đàn.

Lời khuyên vàng: Luôn luôn sửa template trên một Style con (Child Style) hoặc sử dụng hệ thống Template Modifications (TMs) thay vì sửa trực tiếp vào Master Style. Và hãy nhớ backup trước khi nghịch ngợm!
 
Back
Top