Tutorial 2x Chèn quảng cáo vào giữa danh sách chủ đề của XenForo 2.3

PVS

Super Moderator
Thành viên BQT
Chèn quảng cáo vào giữa danh sách chủ đề của XenForo 2.3

Các vị trí quảng cáo mặc định ở header hay sidebar đôi khi sẽ bị người dùng "làm lơ" do thói quen (hiện tượng "banner blindness"). Một trong những vị trí hiệu quả nhất để đặt quảng cáo hoặc các khối thông báo quảng bá là xen kẽ ngay trong danh sách các chủ đề, nơi người dùng tập trung sự chú ý nhiều nhất.

chen-quang-cao-vao-giua-danh-sach-chu-de-xenforo.png

XenForo không có sẵn tùy chọn này, nhưng chúng ta hoàn toàn có thể làm được bằng cách chỉnh sửa template một chút. Bài viết này sẽ hướng dẫn bạn cách tìm đúng template và chèn đoạn mã cần thiết để hiển thị một khối tùy chỉnh sau một vị trí nhất định (ví dụ: sau chủ đề thứ 5).

Cảnh báo: Kỹ thuật nâng cao nói:
Hướng dẫn này yêu cầu bạn phải chỉnh sửa template trực tiếp. Một sai sót nhỏ có thể làm hỏng giao diện của diễn đàn. Luôn luôn sao lưu template gốc trước khi chỉnh sửa bằng cách tắt tùy chọn "Save without revision".

Bước 1: Xác định Template cần chỉnh sửa​


Danh sách các chủ đề trong một chuyên mục được tạo ra bởi một template macro. Template chúng ta cần tìm là thread_list_macros.
  1. Truy cập AdminCP > Appearance > Templates.
  2. Trong ô tìm kiếm, gõ thread_list_macros và mở template đó ra.

Bước 2: Tìm đúng vị trí và chèn mã​


Bên trong template này, bạn cần tìm đến vòng lặp dùng để hiển thị từng chủ đề.
  1. Tìm đến đoạn mã có chứa <xf:foreach loop="$threads" value="$thread">. Đây chính là vòng lặp chúng ta cần.
  2. Bên trong vòng lặp này, XenForo sẽ hiển thị từng dòng chủ đề. Chúng ta sẽ chèn khối tùy chỉnh của mình ngay sau khi một dòng chủ đề được hiển thị.
  3. Hãy tìm đến thẻ đóng của một dòng (</li> hoặc </div> của structItem) bên trong vòng lặp, và dán đoạn mã dưới đây vào ngay sau nó, nhưng phải trước thẻ </xf:foreach>.
Đoạn mã cần chèn:
HTML:
<xf:if is="$loop.iteration == 5">
    <li class="structItem">
        <div class="structItem-cell structItem-cell--main">
            <div style="padding: 15px; text-align: center; background-color: #f0f7ff; border: 1px solid #cfe2f3;">
                <b>Đây là vị trí quảng cáo đặc biệt!</b><br/>
                <em>Bạn có thể đặt mã Google AdSense hoặc bất kỳ HTML nào vào đây.</em>
            </div>
            </div>
    </li>
</xf:if>
Giải thích:
  • <xf:if is="$loop.iteration == 5">: Câu lệnh này chỉ thực thi đoạn mã bên trong khi vòng lặp đang ở lần lặp thứ 5 (ngay sau chủ đề thứ 5). Bạn có thể thay đổi số 5 thành bất kỳ vị trí nào bạn muốn.
  • <li class="structItem">...</li>: Chúng ta sử dụng các class CSS mặc định của XenForo để khối tùy chỉnh của chúng ta có giao diện tương đồng với danh sách chủ đề.

Thủ thuật nâng cao​


Lặp lại khối tùy chỉnh​

Nếu bạn muốn khối quảng cáo xuất hiện lặp lại, ví dụ sau mỗi 10 chủ đề (ở vị trí 5, 15, 25...), hãy thay thế câu lệnh xf:if ở trên bằng câu lệnh sau:
HTML:
<xf:if is="$loop.iteration > 0 AND $loop.iteration % 10 == 5">

Chỉ hiển thị trong một chuyên mục nhất định​

Để giới hạn quảng cáo chỉ xuất hiện trong một chuyên mục cụ thể (ví dụ chuyên mục có ID là 25), hãy bao bọc toàn bộ đoạn mã của bạn trong một câu lệnh xf:if khác:
HTML:
<xf:if is="$forum.node_id == 25">
   
    <xf:if is="$loop.iteration == 5">
        ... (Nội dung khối tùy chỉnh của bạn) ...
    </xf:if>

</xf:if>

Kết luận

Chỉnh sửa template thread_list_macros là một kỹ thuật mạnh mẽ để tạo ra các vị trí hiển thị nội dung chiến lược. Bằng cách sử dụng biến $loop.iteration và một vài câu lệnh điều kiện đơn giản, bạn có thể chèn bất kỳ nội dung tùy chỉnh nào vào những vị trí "vàng" trên diễn đàn của mình. Hãy luôn nhớ sao lưu và ghi lại các thay đổi của bạn để tiện cho việc quản lý và nâng cấp sau này.

Chúc các bạn thành công.


VNXF.VN​
 
Back
Top