مدیاویکی:Gadget-HistoryCount.js

از ویکی‌پدیا، دانشنامهٔ آزاد

نکته: برای دیدن تغییرات، ممکن است نیاز باشد که حافظهٔ نهانی مرورگر خود را پس از انتشار پاک‌سازی کنید. گوگل کروم، فایرفاکس، مایکروسافت اج و سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload در نوار ابزار مرورگر کلیک کنید. برای آگاهی از جزئیات و نحوهٔ پاک‌سازی حافظهٔ نهانی سایر مرورگرها، صفحهٔ ویکی‌پدیا:میانگیر مرورگرتان را خالی کنید را ببینید.

(function(mw, $) {
    if (mw.config.get('wgIsArticle') || mw.config.get('wgAction')!="history") return;
    $(function() {
        try {
            var obj = Object();
            $("section#pagehistory").find(".history-user>a.mw-userlink").each(function(i, el) {
                var str = mw.html.escape(el.innerHTML);
                if (!obj[str])
                    obj[str] = { count : 0, href : el.href.substr(mw.config.get('wgServer').length), content : el.innerHTML };
                obj[str].count++;
            });
            var names = Array();
            for (var x in obj) names.push(x);
            names.sort(function(a, b){ return a.localeCompare(b); });
            var html = Array();
            for (var x in names) {
                if (obj[names[x]]) html.push(
                    '<span>' + String(obj[names[x]].count).replace(/1/g, "۱").replace(/2/g, "۲").replace(/3/g, "۳").replace(/4/g, "۴").replace(/5/g, "۵").replace(/,/g, ".").replace(/6/g, "۶").replace(/7/g, "۷").replace(/8/g, "۸").replace(/9/g, "۹").replace(/0/g, "۰")+ ' مرتبه </span>'
                    +'<a'
// TODO: this fails for secure server
                    + (obj[names[x]].href ? ' href="//fa.wikipedia.org/wiki/' + obj[names[x]].href.substr(mw.config.get('wgServer').length).replace(/%D8%A7%D8%B1%D8%A8%D8%B1/g, "user") + '"' : '')
                    + ' title="' + names[x] + '"'
                    + '>' + obj[names[x]].content
                    + '</a> ');
            }
            $("#bodyContent").append('<div class="history-summary"><B>مشارکت‌کنندگان :</B>' + html.join(' <B>ا</B> ') + '</div>');
        }
        catch (e) {
            // just go away
        }
    });
})(mediaWiki, jQuery);