[Hỏi đáp] Js xét rank nhẹ nhất có thể.

  Bài viết hay nhất1
First topic message reminder :

Không cần quá phức tạp/cầu kì, mình chỉ muốn 1 đoạn js đơn giản nhất để làm tốt công việc sau: Đạt n post thì sẽ được xét 1 hình ảnh (huy hiệu chẳng hạn) và tự động chèn vào 1 chỗ nào đó tùy ý (VD: <div class="rank"></div>).

P/s: Thx vì đã ghé thăm topic.
  Bài viết hay nhất16
Dòng 33, thay += bằng =
  Bài viết hay nhất17
Cảm ơn vì sự giúp đỡ :)
  Bài viết hay nhất18
Mình dùng đoạn code comment không chuyển trang của Baivong và đoạn code của cái rank này ko thể hiệu lực khi load comment mới (phải F5 thì mới hiệu lực js), liệu Baivong có cách nào khắc phục không?

DEMO: [Hỏi đáp] Js xét rank nhẹ nhất có thể. - Page 2 33uvn03
  Bài viết hay nhất19
1. Demo + Nick test.
2. Gửi code cmt ko chuyển trang và code xét rank đang dùng lên đây.
  Bài viết hay nhất20

Zzbaivong wrote:1. Demo + Nick test.
2. Gửi code cmt ko chuyển trang và code xét rank đang dùng lên đây.
Chắc là cái này :v
http://www.congdongotakuviet.com/forum
  Bài viết hay nhất21

Zzbaivong wrote:1. Demo + Nick test.
2. Gửi code cmt ko chuyển trang và code xét rank đang dùng lên đây.

Rank dưới avatar
Code:
/*!
 * zzRank by Zzbaivong <devs.forumvi.com>
 * Thêm huân chương dựa theo số lượng bài viết
 */
$(function() {
    var data_rank = {
        1: {
            title: "http://i.imgur.com/0oBxW7S.png",
            desc: "http://i.imgur.com/YGVVlsA.png",
            date: "http://i.imgur.com/N3hUhQl.png"
        },
        200: {
            title: "http://i.imgur.com/JxOKEnF.png",
            desc: "http://i.imgur.com/uUIKkpg.png",
            date: "http://i.imgur.com/N3hUhQl.png"
        },
        500: {
            title: "http://i.imgur.com/u9n0YYH.png",
            desc: "http://i.imgur.com/jMSoBmv.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        1000: {
            title: "http://i.imgur.com/BaJEHFZ.png",
            desc: "http://i.imgur.com/PgEMtWP.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        1500: {
            title: "http://i.imgur.com/u9n0YYH.png",
            desc: "http://i.imgur.com/U6vGdWp.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        2000: {
            title: "http://i.imgur.com/NxLQybF.png",
            desc: "http://i.imgur.com/ci8Vh7f.png",
            date: "http://i.imgur.com/FBLcFEe.gif"
        },
        3000: {
            title: "http://i.imgur.com/axLOdsM.gif",
            desc: "http://i.imgur.com/LgdSiYr.png",
           date: "http://i.imgur.com/FBLcFEe.gif"
        },
        4000: {
            title: "http://i.imgur.com/g73FHTL.gif",
            desc: "http://i.imgur.com/kzEoAoJ.gif",
           date: "http://i.imgur.com/FBLcFEe.gif"
        },
        5000: {
            title: "http://i.imgur.com/KhKzkXT.gif",
            desc: "http://i.imgur.com/0xR2Xu3.gif",
           date: "http://i.imgur.com/FBLcFEe.gif"
        },
        6000: {
            title: "http://i.imgur.com/tfkbglW.gif",
            desc: "http://i.imgur.com/4ouDsFP.gif",
            date: "http://i.imgur.com/FBLcFEe.gif"
        }
    };
    $(".rankavatar").html(function() {
        var all = "";
        var post = parseInt($(this).closest(".post").find(".profile_field_mess:contains('Tổng số bài gửi:')").text().match(/\d+/)[0], 10);
        $.each(data_rank, function(key, val) {
            if (post >= key) {
                all = '<table style="width:184px;"><tr><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].title + '" title="Huy hiệu đóng góp"/></div></td><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].desc + '" title="Huy hiệu thân thiết" /></div></td><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].date + '" title="Huy hiệu gắn bó" /></div></td></tr></table>';
            }
        });
        return all;
    });
});



Rank Tài năng/Kinh nghiệm/Hoạt động
Code:
/*!
 * zzRank by Zzbaivong <devs.forumvi.com>
 * Thêm huân chương dựa theo số lượng bài viết
 */
$(function() {
    var data_rank = {
        1: {
            title: "1",
            desc: "1",
            icon: "1"
        },
        50: {
            title: "10",
            desc: "20",
            icon: "6"
        },
        100: {
            title: "20",
            desc: "30",
            icon: "10"
        },
        300: {
            title: "30",
            desc: "45",
            icon: "20"
        },
        400: {
            title: "20",
            desc: "30",
            icon: "10"
        },
        500: {
            title: "50",
            desc: "40",
            icon: "25"
        },
        800: {
            title: "55",
            desc: "45",
            icon: "30"
        },
        1000: {
            title: "60",
            desc: "50",
            icon: "35"
        },
        2000: {
            title: "65",
            desc: "55",
            icon: "45"
        },
        3000: {
            title: "80",
            desc: "70",
            icon: "85"
        },
        4000: {
            title: "90",
            desc: "80",
            icon: "95"
        },
        5000: {
            title: "98",
            desc: "95",
            icon: "90"
        }
    };
    $(".rank_mess").html(function() {
        var all = "";
        var post = parseInt($(this).closest(".post").find(".profile_field_mess:contains('Tổng số bài gửi:')").text().match(/\d+/)[0], 10);
        $.each(data_rank, function(key, val) {
            if (post >= key) {
                all = '<div id="round" style="width: 150px; margin-top: -5px; margin-right: 10px; margin-left: 10px;"><b><font color=orange> Tài năng : </font></b><div class="abilitybg"><div class="abilitybg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="/users/2211/12/43/96/album/orange10.gif" width="' + data_rank[key].title + '%" height="9px"></fieldset></div></div><b><font color=green> Kinh nghiệm : </font></b><div class="abilitybg"><div class="abilitybg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="/users/2211/12/43/96/album/green110.gif" width="' + data_rank[key].desc + '%" height="9px"></fieldset></div></div><font color=RoyalBlue1> <b> Hoạt động :</b></font><div class="expbg"><div class="expbg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="http://2img.net/s/t/13/12/63/i_voting_bar.gif" width="' + data_rank[key].icon + '%" height="9px"></fieldset></div></div></div>';
            }
        });
        return all;
    });
});



Quick reply
Code:
$(function() {
    $('#quick_reply input[name="post"]').click(function(a) {
        a.preventDefault();
        var g = $("#text_editor_textarea").sceditor('instance').val();
        var href = $('a[href*="mode=reply"]').attr("href");
        var value = $("#text_editor_textarea").sceditor("instance").val().replace(/\s/g, '').length;
        if (10 < value) {
            $('<div class="lreply"><br /><img src="http://i.imgur.com/eDk8gFf.gif"><br><b>Đang cập nhật bình luận của bạn...</b></div>').appendTo(".frm-buttons");
            $.post(href, {
                "message": g,
                "auth[]": $("#quick_reply input[name='auth[]']:last").val(),
                "lt": $("#quick_reply input[name='lt']").val(),
                "attach_sig": "1",
                "post": "Send"
            }, function(t) {
                var $new = $(t).find('.message a[href^="/viewtopic"]');
                if ($new.length) {
                    $.get($new.attr("href"), function(z) {
                        $("#quick_reply input[name='auth[]']:last").val($(z).find("#quick_reply input[name='auth[]']:last").val());
                        $("#quick_reply input[name='lt']").val($(z).find("#quick_reply input[name='lt']").val());
                        $(z).find(".post:last").hide().insertAfter(".post:last").slideDown(400)
                    });
                    $("#text_editor_textarea").sceditor('instance').val("");
                    $(".lreply").remove();
                } else {
                    if (t.indexOf("Flood") != -1 && _userdata["user_lang"] === "vi") {
                        alert("THÔNG BÁO!!!\nNghi vấn spam, tài khoản của bạn đang được xem xét và có thể bị khóa nếu vẫn comment liên tục trong thời gian ngắn như vậy. Vui lòng comment chậm lại\n(Chờ 60 giây sau để tiếp tục comment.)");
                        $(".lreply").remove();
                    } else if (t.indexOf("Flood") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Error!\nYou must wait 60 second before replying");
                        $(".lreply").remove();
                    } else if (t.indexOf("A new") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Lỗi!\nĐã có người gửi bài trước bạn.\nBạn phải F5 lại trang để tiếp tục.\nChú ý : Bạn nên copy lại tin nhắn trước khi F5 ");
                        $(".lreply").remove();
                    } else if (t.indexOf("A new") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Error!\nSomeone had replied before your post\nYou must refresh the page to continue.\nNotice : You should save or copy your message if you don't want it gone");
                        $(".lreply").remove();
                    }
                }
            });
        } else {
            if ($("html").attr("xml:lang") == "vi") {
                alert("Xin lỗi\nNội dung quá ngắn không thể gửi bài !\nBạn cần nhập thêm " + (10 - value) + " ký tự nữa.")
            } else {
                alert("Sorry\nThe content is too short to send as post !\nYou must write " + (10 - value) + " characters more.")
            }
        }
    })
});
  Bài viết hay nhất22
2 cái code rank dồn lại thành 1 như thế này:
Code:
/*!
 * zzRank by Zzbaivong <devs.forumvi.com>
 * Thêm huân chương dựa theo số lượng bài viết
 */
function rankavatar(ele) {
    var data_rank = {
        1: {
            title: "http://i.imgur.com/0oBxW7S.png",
            desc: "http://i.imgur.com/YGVVlsA.png",
            date: "http://i.imgur.com/N3hUhQl.png"
        },
        200: {
            title: "http://i.imgur.com/JxOKEnF.png",
            desc: "http://i.imgur.com/uUIKkpg.png",
            date: "http://i.imgur.com/N3hUhQl.png"
        },
        500: {
            title: "http://i.imgur.com/u9n0YYH.png",
            desc: "http://i.imgur.com/jMSoBmv.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        1000: {
            title: "http://i.imgur.com/BaJEHFZ.png",
            desc: "http://i.imgur.com/PgEMtWP.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        1500: {
            title: "http://i.imgur.com/u9n0YYH.png",
            desc: "http://i.imgur.com/U6vGdWp.gif",
            date: "http://i.imgur.com/1uK5tdB.png"
        },
        2000: {
            title: "http://i.imgur.com/NxLQybF.png",
            desc: "http://i.imgur.com/ci8Vh7f.png",
            date: "http://i.imgur.com/FBLcFEe.gif"
        },
        3000: {
            title: "http://i.imgur.com/axLOdsM.gif",
            desc: "http://i.imgur.com/LgdSiYr.png",
            date: "http://i.imgur.com/FBLcFEe.gif"
        },
        4000: {
            title: "http://i.imgur.com/g73FHTL.gif",
            desc: "http://i.imgur.com/kzEoAoJ.gif",
            date: "http://i.imgur.com/FBLcFEe.gif"
        },
        5000: {
            title: "http://i.imgur.com/KhKzkXT.gif",
            desc: "http://i.imgur.com/0xR2Xu3.gif",
            date: "http://i.imgur.com/FBLcFEe.gif"
        },
        6000: {
            title: "http://i.imgur.com/tfkbglW.gif",
            desc: "http://i.imgur.com/4ouDsFP.gif",
            date: "http://i.imgur.com/FBLcFEe.gif"
        }
    };
    $(ele).html(function() {
        var all = "";
        var post = parseInt($(this).closest(".post").find(".profile_field_mess:contains('Tổng số bài gửi:')").text().match(/\d+/)[0], 10);
        $.each(data_rank, function(key, val) {
            if (post >= key) {
                all = '<table style="width:184px;"><tr><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].title + '" title="Huy hiệu đóng góp"/></div></td><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].desc + '" title="Huy hiệu thân thiết" /></div></td><td width="33%"><div class="rankava klkkk" style="background: #fff url(http://i.imgur.com/XtbJ7Kf.gif) no-repeat 50% 50%;"><img src="' + data_rank[key].date + '" title="Huy hiệu gắn bó" /></div></td></tr></table>';
            }
        });
        return all;
    });
}

function rank_mess(ele) {
    var data_rank = {
        1: {
            title: "1",
            desc: "1",
            icon: "1"
        },
        50: {
            title: "10",
            desc: "20",
            icon: "6"
        },
        100: {
            title: "20",
            desc: "30",
            icon: "10"
        },
        300: {
            title: "30",
            desc: "45",
            icon: "20"
        },
        400: {
            title: "20",
            desc: "30",
            icon: "10"
        },
        500: {
            title: "50",
            desc: "40",
            icon: "25"
        },
        800: {
            title: "55",
            desc: "45",
            icon: "30"
        },
        1000: {
            title: "60",
            desc: "50",
            icon: "35"
        },
        2000: {
            title: "65",
            desc: "55",
            icon: "45"
        },
        3000: {
            title: "80",
            desc: "70",
            icon: "85"
        },
        4000: {
            title: "90",
            desc: "80",
            icon: "95"
        },
        5000: {
            title: "98",
            desc: "95",
            icon: "90"
        }
    };
    $(ele).html(function() {
        var all = "";
        var post = parseInt($(this).closest(".post").find(".profile_field_mess:contains('Tổng số bài gửi:')").text().match(/\d+/)[0], 10);
        $.each(data_rank, function(key, val) {
            if (post >= key) {
                all = '<div id="round" style="width: 150px; margin-top: -5px; margin-right: 10px; margin-left: 10px;"><b><font color=orange> Tài năng : </font></b><div class="abilitybg"><div class="abilitybg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="/users/2211/12/43/96/album/orange10.gif" width="' + data_rank[key].title + '%" height="9px"></fieldset></div></div><b><font color=green> Kinh nghiệm : </font></b><div class="abilitybg"><div class="abilitybg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="/users/2211/12/43/96/album/green110.gif" width="' + data_rank[key].desc + '%" height="9px"></fieldset></div></div><font color=RoyalBlue1> <b> Hoạt động :</b></font><div class="expbg"><div class="expbg2"><fieldset style="padding: 1px;border: 1px solid #666;border-radius: 3px 3px 3px 3px;"><img src="http://2img.net/s/t/13/12/63/i_voting_bar.gif" width="' + data_rank[key].icon + '%" height="9px"></fieldset></div></div></div>';
            }
        });
        return all;
    });
}

$(function() {
    rankavatar(".rankavatar");
    rank_mess(".rank_mess");
});

Code trả lời nhanh thì thay bằng:
Code:
$(function() {
    $('#quick_reply input[name="post"]').click(function(a) {
        a.preventDefault();
        var g = $("#text_editor_textarea").sceditor('instance').val();
        var href = $('a[href*="mode=reply"]').attr("href");
        var value = $("#text_editor_textarea").sceditor("instance").val().replace(/\s/g, '').length;
        if (10 < value) {
            $('<div class="lreply"><br /><img src="http://i.imgur.com/eDk8gFf.gif"><br><b>Đang cập nhật bình luận của bạn...</b></div>').appendTo(".frm-buttons");
            $.post(href, {
                "message": g,
                "auth[]": $("#quick_reply input[name='auth[]']:last").val(),
                "lt": $("#quick_reply input[name='lt']").val(),
                "attach_sig": "1",
                "post": "Send"
            }, function(t) {
                var $new = $(t).find('.message a[href^="/viewtopic"]');
                if ($new.length) {
                    $.get($new.attr("href"), function(z) {
                        $("#quick_reply input[name='auth[]']:last").val($(z).find("#quick_reply input[name='auth[]']:last").val());
                        $("#quick_reply input[name='lt']").val($(z).find("#quick_reply input[name='lt']").val());
                        $(z).find(".post:last").hide().insertAfter(".post:last").slideDown(400);
                        rankavatar(".rankavatar:last");
                        rank_mess(".rank_mess:last");
                    });
                    $("#text_editor_textarea").sceditor('instance').val("");
                    $(".lreply").remove();
                } else {
                    if (t.indexOf("Flood") != -1 && _userdata["user_lang"] === "vi") {
                        alert("THÔNG BÁO!!!\nNghi vấn spam, tài khoản của bạn đang được xem xét và có thể bị khóa nếu vẫn comment liên tục trong thời gian ngắn như vậy. Vui lòng comment chậm lại\n(Chờ 60 giây sau để tiếp tục comment.)");
                        $(".lreply").remove();
                    } else if (t.indexOf("Flood") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Error!\nYou must wait 60 second before replying");
                        $(".lreply").remove();
                    } else if (t.indexOf("A new") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Lỗi!\nĐã có người gửi bài trước bạn.\nBạn phải F5 lại trang để tiếp tục.\nChú ý : Bạn nên copy lại tin nhắn trước khi F5 ");
                        $(".lreply").remove();
                    } else if (t.indexOf("A new") != -1 && _userdata["user_lang"] === "vi") {
                        alert("Error!\nSomeone had replied before your post\nYou must refresh the page to continue.\nNotice : You should save or copy your message if you don't want it gone");
                        $(".lreply").remove();
                    }
                }
            });
        } else {
            if ($("html").attr("xml:lang") == "vi") {
                alert("Xin lỗi\nNội dung quá ngắn không thể gửi bài !\nBạn cần nhập thêm " + (10 - value) + " ký tự nữa.")
            } else {
                alert("Sorry\nThe content is too short to send as post !\nYou must write " + (10 - value) + " characters more.")
            }
        }
    })
});
  Bài viết hay nhất23
Chân thành cảm ơn vì sự giúp đỡ :)
  Bài viết hay nhất24
You cannot reply to topics in this forum