[Code] Chuyển link theo phong cách xenforo

  • lasperpen
    1. [Code] Chuyển link theo phong cách xenforo
    avatar ADM
    Chức năng này sẽ tạo ra thông báo nhắc nhở người dùng, khi họ click vào liên kết lạ.
    Đối với một Admin, đa phần đều muốn 4rum có lượng truy cập đông, thời gian ở lại lâu, tất nhiên sẽ chẳng ai muốn người xem rời đi chỉ vì click nhầm vào liên kết nào đấy. Một thông báo, nhắc nhở khi người xem click vào liên kết lạ, sẽ có ích trong trường hợp này. Trong lúc người xem đang suy tư với thì một số Admin còn gắn thêm quảng cáo, hoặc kèm vài lời đe dọa như: Chúng tôi không chịu trách nhiệm khi bạn chuyển đến liên kết này, bala bala...


    Demo



    Ảnh minh họa


    Chức năng



    • Khi người xem click vào liên kết ngoài (trừ liên kết ảnh), sẽ xuất hiện một thông báo chuyển hướng với 2 lựa chọn: Trở về hoặc tiếp tục.
    • Tự chuyển trang sau 5 giây nếu người dùng không lựa chọn.
    • Thông báo lỗi nếu sai thông số chuyển hướng



    Hướng dẫn



    Bước 1



    Tạo trang HTML:
    ACP >> Modules >> HTML & JAVASCRIPT >> HTML pages management >> Create in advanced mode (HTML)

    Do you wish to use your forum header and footer ?: Có
    Page content *
    Code:
    <script type="text/javascript">
    //<![CDATA[
    /* zzRedirects v3.1.1 - devs.forumvi.com */
    (function($) {

        'use strict';

        $('head').append($('<style>', {
            text: '#redirects{background:#FFF;width:75%;margin:30px auto;padding:20px 30px;border:1px solid #DDD}#redirects h3{border-bottom:1px solid #ddd;font-size:17px;font-weight:400;padding-bottom:10px;color:#830000;margin:0 0 20px}#redirects p{color:#222;font-size:13px;line-height:20px;margin:5px auto 15px}.redirectFooter{background-color:#fff;padding:20px 0 30px}#redirectButtons{float:right;list-style-type:none;margin:0;padding:0}#redirectButtons li{float:left}#redirectButtons a{transition:all .2s linear 0;-moz-transition:all .2s linear 0;-o-transition:all .2s linear 0;-webkit-transition:all .2s linear 0;background-color:#0063dc;border:0 none;color:#fff!important;font-size:12px;line-height:30px;min-width:45px;text-align:center;display:block;text-decoration:none!important;padding:0 10px}#redirectButtons a.cancel{background-color:#eee;color:#888!important;margin-right:10px}#redirectButtons a:hover{background-color:#333}'
        }));

        $('#content-container').html('<div id="redirects"><h3><span id="reTitle">Lỗi</span> chuyển hướng...</h3><p id="redirectMess"><span style="color:red">Không tìm thấy tham số cần thiết.</span><br />Đây là trang xác nhận chuyển hướng đến các liên kết ngoài diễn đàn. Nếu bạn vô tình vào trang này, hãy nhấn <a href="/" rel="nofollow" style="font-weight: bold;">vào đây</a> để quay lại. Nếu không, hãy <a href="/contact" rel="nofollow" style="font-weight: bold;">liên hệ</a> với BQT để báo lỗi này.</p><div class="redirectFooter"><ul id="redirectButtons"><li><a id="fromLink" class="cancel" href="/">Quay lại</a></li></ul></div></div>');

        var external = GetParam('url');
        if (null === external || !window.atob) return;

        var goback = document.referrer,
            page = window.name,
            timer, second = 5;

        $('#reTitle').text('Đang');
        $('#redirectMess').html('Bạn đang chuẩn bị rời khỏi <span id="fromTitle">diễn đàn</span> và di chuyển đến đường dẫn: <b><a id="toLink" href="#error" title="No link" rel="nofollow">...</a></b> trong vòng <b><span class="delayTime">5</span></b> giây nữa...<br />Bạn có chắc chắn là muốn đến đường dẫn này không?');

        if (page !== '') $('#fromTitle').html('<strong>' + page + '</strong>');
        if (goback !== '') $('#fromLink').attr('href', goback);

        window.name = '';
        external = window.atob(external);
        page = external;

        if (35 <= page.length) page = page.slice(0, 32) + '...';
        $('#toLink').attr({
            href: external,
            title: external
        }).text(page);

        $('#redirectButtons').append('<li><a href="' + external + '" id="gotoBtn" class="redirectSkip forward" rel="nofollow">Tiếp tục (<span class="delayTime">5</span>)</a></li>');
        timer = setInterval(function() {
            var count = second--;
            0 > count ? (clearInterval(timer), window.location = external) : $('.delayTime').text(count);
        }, 1E3);
        $('a', '#redirectButtons').click(function() {
            clearInterval(timer);
        });

    })(jQuery);
    //]]>
    </script>
    Chú ý: Ghi nhớ PAGE ID của trang HTML vừa tạo.
    Nếu diễn đàn của bạn không sử dụng sidebar (forum widget) thì ở trong code trên, dòng 12, tìm: #content-container sửa thành:

    • punBB: #main-content
    • Invision: #content
    • PhpBB2, PhpBB3: #emptyidcc


    Bước 2



    Tạo file Javascript:
    ACP >> Modules >> HTML & JAVASCRIPT >> Javascript codes management >> Create a new javascript

    Title * : zzRedirect
    Placement : In all the pages
    Javascript Code * :
    Code:
    /* zzRedirects v3.1.1 - devs.forumvi.com */
    jQuery(function($) {
        'use strict';
        if (window.btoa && window.atob) $('.post-entry a').not('a[href$=".jpg"],a[href$=".jpeg"],a[href$=".png"],a[href$=".gif"],a[href$=".bmp"],a[href^="/"],a[href^="#"],a[href^="?"],a[href^="http://' + location.host + '"]').addClass('external').click(function(e) {
            e.preventDefault();
            window.open('/h{PAGE_ID}-redirect?url=' + window.btoa(this.href), document.title);
        });
    });
    Chú ý: Thay {PAGE_ID} trong code trên bằng số thứ tự trang HTML tạo ở bước 2.
    Nếu diễn đàn của bạn sử dụng phiên bản PhpBB2 hoặc PhpBB3, thì ở trong code trên, dòng 4, tìm: .post-entry a sửa thành: .postbody a

    Nguồn : Devs

  • huyvip83
    mình làm rồi nhưng forum không chuyển được

    demo

    Code:
    http://thainguyennews.forumvi.com/t1168-thai-nguyen-lap-dat-mang-internet-fpt-tai-thai-nguyen-0982-115-946


    --Chữ ký--
    Thà làm thằng member thường, còn hơn làm thằng Mod bất đắc dĩ

    Ghé thăm forum chơi nào bạn: http://thainguyennews.forumvi.com
Thông tin tác giả
avatar
ADM
Bài viết :
188
Points :
386
Like :
140
PhpBB3
Quản trị
Status :
Hồi xưa mình đẹp trai lắm...Bây giờ đỡ nhiều rồi
Xem lý lịch thành viên http://www.hotrofm.net/u4
Thông tin tác giả
avatar
MEM LV3
Bài viết :
212
Points :
355
Like :
65
Punbb
Cẩn thận
Xem lý lịch thành viên
Bài viết liên quan
    Đang tải dữ liệu

Permissions in this forum:
Bạn không có quyền trả lời bài viết