Top Commentators Widget for Blogger Blogspot

Top Commentators Widget for Blogger Blogspot

How to add Top Commentators Widget for Blogger Blogspot

Here is full tutorial about how to add top comment widget on blogger blogspot website. and here is the code, make it yourself just copy the code from here.

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<title>Top Commentators</title>
<style>
.top-commenter-line {
  margin:3px 0px;
}
.top-commenter-avatar {
  display:inline-block;
  vertical-align:middle;
}
</style>
</head>
<body>

<script>
// Top Commentators gadget with avatars, by MS-potilas 2012.
// Gets a list of top commentators from all comments, or specified number of days in the past.
// See http://yabtb.blogspot.com/2012/05/top-commenters-gadget-with-avatars.html

// CONFIG:
var homepage           = 'http://latitudu.blogspot.com',  // Homepage
    maxTopCommenters   = 17,  // How much?
    minComments        = 1,  // How many comments must top commentator have at least
    numDays            = 0,  // From how many days (ex. 30), or 0 from "all the time"
    excludeMe          = true,  // true: exclude my own comments
    excludeUsers       = ["Anonymous", "Another Name"],  // Exclude these usernames
    maxUserNameLength  = 42,  // 0: don't cut, >4: cut usernames
    txtTopLine         = '<b>[#].</b> [image] [user] ([count])',  // List number
    txtNoTopCommenters = 'No top commentators at this time.',
    txtAnonymous       = '',  // Empty, or Anonymous user name localized if you want to localize
    sizeAvatar         = 16,  // Avatar size
    cropAvatar         = true,
    urlNoAvatar        = 'http://lh4.googleusercontent.com/-069mnq7DV_g/TvgRrBI_JaI/AAAAAAAAAic/Iot55vywnYw/s' + sizeAvatar + '/avatar_blue_m_96.png',  // http://www.blogger.com/img/avatar_blue_m_96.png resizeable
    urlAnoAvatar       = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar,
    urlMyProfile       = '',  // Set if you have no profile gadget on page
    urlMyAvatar        = '';  // Can be empty (then it is fetched) or url to image
// END CONFIG
// for old IEs & IE modes:
if (!Array.indexOf) {
    Array.prototype.indexOf = function(obj) {
        for (var i = 0; i < this.length; i++) if (this[i] == obj) return i;
        return -1;
    };
}

function replaceTopCmtVars(text, item, position) {
    if (!item || !item.author) return text;
    var author = item.author;

    var authorUri = "";
    if (author.uri && author.uri.$t !== "") authorUri = author.uri.$t;

    var avaimg = urlAnoAvatar;
    var bloggerprofile = "//www.blogger.com/profile/";
    if (author.gd$image && author.gd$image.src && authorUri.substr(0, bloggerprofile.length) == bloggerprofile) {
        avaimg = author.gd$image.src;
    } else {
        var parseurl = document.createElement('a');
        if (authorUri !== "") {
            parseurl.href = authorUri;
            avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname;
        }
    }
    if (urlMyProfile !== "" && authorUri == urlMyProfile && urlMyAvatar !== "") avaimg = urlMyAvatar;
    if (avaimg == "//img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar !== "") avaimg = urlNoAvatar;
    var newsize = "s" + sizeAvatar;
    avaimg = avaimg.replace(/\/s\d\d+-c\//, "/" + newsize + "-c/");
    if (cropAvatar) newsize += "-c";
    avaimg = avaimg.replace(/\/s\d\d+(-c){0,1}\//, "/" + newsize + "/");

    var authorName = author.name.$t;
    if (authorName == 'Anonymous' && txtAnonymous !== "" && avaimg == urlAnoAvatar) authorName = txtAnonymous;
    var imgcode = '<img class="top-commenter-avatar" height="' + sizeAvatar + '" width="' + sizeAvatar + '" title="' + authorName + '" src="' + avaimg + '" />';
    if (authorUri !== "") imgcode = '<a href="' + authorUri + '">' + imgcode + '</a>';

    if (maxUserNameLength > 3 && authorName.length > maxUserNameLength) authorName = authorName.substr(0, maxUserNameLength - 3) + "...";
    var authorcode = authorName;
    if (authorUri !== "") authorcode = '<a class="profile-name-link" href="' + authorUri + '">' + authorcode + '</a>';

    text = text.replace('[user]', authorcode);
    text = text.replace('[image]', imgcode);
    text = text.replace('[#]', position);
    text = text.replace('[count]', item.count);
    return text;
}

var topcommenters = {};
var ndxbase = 1;

function showTopCommenters(json) {
    var one_day = 1000 * 60 * 60 * 24;
    var today = new Date();

    if (urlMyProfile === "") {
        var elements = document.getElementsByTagName("*");
        var expr = /(^| )profile-link( |$)/;
        for (var i = 0; i < elements.length; i++) {
            if (expr.test(elements[i].className)) urlMyProfile = elements[i].href;
            break;
        }
    }

    for (var j = 0; j < json.feed.entry.length; j++) {
        var entry = json.feed.entry[j];
        if (numDays > 0) {
            var datePart = entry.published.$t.match(/\d+/g); // Assume ISO 8601
            var cmtDate = new Date(datePart[0], datePart[1] - 1, datePart[2], datePart[3], datePart[4], datePart[5]);

            // Calculate difference btw the two dates, and convert to days
            var days = Math.ceil((today.getTime() - cmtDate.getTime()) / (one_day));
            if (days > numDays) break;
        }
        var authorUri = "";
        if (entry.author[0].uri && entry.author[0].uri.$t !== "") authorUri = entry.author[0].uri.$t;

        if (excludeMe && authorUri !== "" && authorUri == urlMyProfile) continue;
        var authorName = entry.author[0].name.$t;
        if (excludeUsers.indexOf(authorName) != -1) continue;

        var hash = entry.author[0].name.$t + "-" + authorUri;
        if (topcommenters[hash]) topcommenters[hash].count++;
        else {
            var commenter = {};
            commenter.author = entry.author[0];
            commenter.count = 1;
            topcommenters[hash] = commenter;
        }
    }
    if (json.feed.entry.length == 200) {
        ndxbase += 200;
        document.write('<scr' + 'ipt src="' + homepage + '/feeds/comments/default?redirect=false&max-results=200&start-index=' + ndxbase + '&alt=json-in-script&callback=showTopCommenters"></' + 'script>');
        return;
    }

    // Convert object to array of tuples
    var tuplear = [];
    for (var key in topcommenters) tuplear.push([key, topcommenters[key]]);

    tuplear.sort(function(a, b) {
        if (b[1].count - a[1].count) return b[1].count - a[1].count;
        return (a[1].author.name.$t.toLowerCase() < b[1].author.name.$t.toLowerCase()) ? -1 : 1;
    });

    // List top commenters:
    var realcount = 0;
    for (var k = 0; k < maxTopCommenters && k < tuplear.length; k++) {
        var item = tuplear[k][1];
        if (item.count < minComments) break;
        document.write('<di' + 'v class="top-commenter-line">');
        document.write(replaceTopCmtVars(txtTopLine, item, realcount + 1));
        document.write('</d' + 'iv>');
        realcount++;
    }
    if (!realcount) document.write(txtNoTopCommenters);
}
document.write('<scr' + 'ipt src="' + homepage + '/feeds/comments/default?redirect=false&max-results=200&alt=json-in-script&callback=showTopCommenters"></' + 'script>');
</script>

</body>
</html>

This is option 2

Top Commentators widget for Blogger – Blogspot

Add automatic to your blog, thankyou
cssmoz

Cssmoz for learning web design and development, get latest blogger tips, Facebook tips, learn work prayers for beginners also get HTML templates, Blogger templates, Wordpress themes and more!

4 تعليقات

  1. Hello! Hope you are having a good day. Your site has really good posts. This post gives truly quality information. I’m definitely going to look into it. Really very useful tips are provided here. Thank you so much. Keep up the good work. We can also be helpful in developing your site, as our site provides the best web development tools. Here is the link jsononline


    ردحذف
  2. However you require to have the option to devote time and furthermore familiarity with the specific building of the inbound connections. There are a couple of dynamic strategies simply like site interface draws to have the option to pull in the us government or maybe instructional sites in which offer to the specific particular specialty areas.
    Jack just posted: Bluehost shared hosting

    ردحذف
  3. Your site has really good posts. This post gives truly quality information. I’m definitely going to look into it. Really very useful tips are provided here. Thank you so much. Keep up the good work. تحويل word الى pdf

    ردحذف
إرسال تعليق
أحدث أقدم