Display A Random Banner - Hiển thị Banner ngẫu nhiên

PVS

Super Moderator
Thành viên BQT
Code hoặc hướng dẫn này được sử dụng trên phiên bản Xenforo cũ đã quá hạn sử dụng. Bạn hãy click để tìm bản mới hơn
Display A Random Banner - Hiển thị Banner ngẫu nhiên

Code này hoạt động trong bất kỳ template nào. Đối với banner quảng cáo ngẫu nhiên bạn có thể làm tại một trong những template ad_. Ví dụ:

Admin CP -> Appearance -> Templates -> ad_above_content

Sử dụng code sau:
Mã:
<xen:comment>DEFINE AND RANDOMIZE YOUR BANNERS</xen:comment>

<xen:set var="$banners.1">banner one</xen:set>
<xen:set var="$banners.2">banner two</xen:set>
<xen:set var="$banners.3">banner three</xen:set>

{xen:raw '$banners.{xen:calc '({$serverTime} % 3) + 1'}'}

Thay thế banner one, banner two, banner three với mã banner của bạn. Chỉ cần chắc chắn để sử dụng một số mới cho mỗi banner mới bạn thêm vào. Và số lượng cao nhất cần phải được đưa vào tính toán rand. Ví dụ, nếu bạn có 5 banner được xác định thì nó sẽ giống như thế này:
Mã:
<xen:comment>DEFINE AND RANDOMIZE YOUR BANNERS</xen:comment>

<xen:set var="$banners.1">banner one</xen:set>
<xen:set var="$banners.2">banner two</xen:set>
<xen:set var="$banners.3">banner three</xen:set>
<xen:set var="$banners.4">banner four</xen:set>
<xen:set var="$banners.5">banner five</xen:set>

{xen:raw '$banners.{xen:calc '({$serverTime} % 5) + 1'}'}

Và đây là code để nhóm các banner ngẫu nhiên bởi forumid. Lưu ý rằng với code này tôi đã khái quát những lựa chọn banner trong vòng lặp foreach. Điều này cho phép bạn chỉ định các số khác nhau của các banner cho mỗi diễn đàn, và bạn không còn phải xác định tổng số các banner để tính rand:
Mã:
<xen:comment>DEFINE AND RANDOMIZE YOUR BANNERS</xen:comment>

<xen:if is="{$forum.node_id} == 2">
    <xen:set var="$banners.1">banner one for forumId 2</xen:set>
    <xen:set var="$banners.2">banner two for forumId 2</xen:set>
    <xen:set var="$banners.3">banner three for forumId 2</xen:set>
    <xen:set var="$banners.4">banner four for forumId 2</xen:set>
<xen:elseif is="{$forum.node_id} == 4" />
    <xen:set var="$banners.1">banner one for forumId 4</xen:set>
    <xen:set var="$banners.2">banner two for forumId 4</xen:set>
    <xen:set var="$banners.3">banner three for forumId 4</xen:set>
    <xen:set var="$banners.4">banner four for forumId 4</xen:set>
    <xen:set var="$banners.5">banner five for forumId 4</xen:set>
<xen:else />
    <xen:set var="$banners.1">banner one for all other forums and pages</xen:set>
    <xen:set var="$banners.2">banner two for all other forums and pages</xen:set>
    <xen:set var="$banners.3">banner three for all other forums and pages</xen:set>
</xen:if>

<xen:foreach loop="$banners" value="$curBanner" i="$i" count="$count">
    <xen:if is="!{$rand}">
        <xen:set var="$rand">{xen:calc '({$serverTime} % {$count}) + 1'}</xen:set>
    </xen:if>
    <xen:if is="{$i} == {$rand}">
        {xen:raw '$banners.{$rand}'}
    </xen:if>
</xen:foreach>

Thêm nhiều elseif để kiểm tra nhiều hơn forumId.

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


Nguồn: xenforo.com​
 
Bá đạo thật, hồi trước đã có mấy lần nghiên cứu về cái này nhưng bài này có ve hd cụ thể nhất
 
Back
Top