Top Commentators Widget Alongside Avatars For Blogger

The commentators are a cardinal component of whatsoever blog, since they are the ones that hand life to the blog, opening in addition to replying to discussions which leads to to a greater extent than action inwards the posts.
The commentators are a cardinal component of whatsoever weblog Top Commentators Widget amongst Avatars for Blogger

It is thus real of import to know which are the near active users of your blog, the users who larn out to a greater extent than comments, in addition to for this reason, today I acquaint a dandy method to display a listing amongst the last yesteryear commentators.

The gadget volition expect something similar this:

The commentators are a cardinal component of whatsoever weblog Top Commentators Widget amongst Avatars for Blogger

This Top Commentators gadget comes amongst user's avatar in addition to is done amongst JavaScript.

How to Add the Top Commenters Gadget to Blogger


1. To add together this gadget, you lot convey to larn to Layout, click on Add a Gadget link.

2. Select the HTML/JavaScript gadget in addition to copy/paste inside the empty box the next code:
<style type="text/css">
.top-commentators {
margin: 3px 0;
border-bottom: 1px dotted #ccc;
}
.avatar-top-commentators {
vertical-align:middle;
border-radius: 30px;
}
.top-commentators .commenter-link-name {
padding-left:0;
}
</style>
<script type="text/javascript">
var maxTopCommenters = 8; 
var minComments = 1;     
var numDays = 0;         
var excludeMe = true;    
var excludeUsers = ["Anonymous", "someotherusertoexclude"]; 
var maxUserNameLength = 42;
//
var txtTopLine = '<b>[#].</b> [image] [user] ([count])';
var txtNoTopCommenters = 'No last yesteryear commentators at this time.';
var txtAnonymous = '';
//
var sizeAvatar = 33;
var cropAvatar = true;
//
var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhim2w-Sb6JbxBLNX-TnPB2eEW4XqJ1ILoQphJ8qMbZPoWZsdAu9RpIH0i80u54YYOWJ-pXn3xC03nXr_5Q9zIumFz8AgxB5Tlobx6FdD4QgLURdZj_rlDO6E2iSSm14KVWkhBXNMwYRihE/s1600/avatar_blue_m_96.png" + sizeAvatar;
var urlAnoAvatar = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw2mZ-fEmPG_qXPt3P0AiMTLoSsrW6ZlF0apFN2ZwIKxfs52Q8N6yxNbXQm-wfucE3pc9gf-m2UezptvjcIwBsGskBQw-pVQXWQohZFuY86McC-w4ou1yKfSakfV4sl7dRq8ixXx1XXScL/s1600/avatar1.png' + sizeAvatar;
var urlMyProfile = '';
var urlMyAvatar = '';
if(!Array.indexOf) {
 Array.prototype.indexOf=function(obj) {
  for(var i=0;i<this.length;i++) if(this[i]==obj) provide i;
  provide -1;
}}
component replaceTopCmtVars(text, item, position)
{
  if(!item || !item.author) provide text;
  var writer = item.author;
  var authorUri = "";
  if(author.uri && author.uri.$t != "")
    authorUri = author.uri.$t;
  var avaimg = urlAnoAvatar;
  var bloggerprofile = "http://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 == "http://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="avatar-top-commentators" height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="Top Commentators Widget amongst Avatars for Blogger" src="'+avaimg+'" />';
  if(authorUri!="") imgcode = '<a href="'+authorUri+'">'+imgcode+'</a>';
  if(maxUserNameLength > three && authorName.length > maxUserNameLength)
    authorName = authorName.substr(0, maxUserNameLength-3) + "...";
  var authorcode = authorName;
  if(authorUri!="") authorcode = '<a class="commenter-link-name" href="'+authorUri+'">'+authorcode+'</a>';
  text = text.replace('[user]', authorcode);
  text = text.replace('[image]', imgcode);
  text = text.replace('[#]', position);
  text = text.replace('[count]', item.count);
  provide text;
}
var topcommenters = {};
var ndxbase = 1;
component showTopCommenters(json) {
  var one_day=1000*60*60*24;
  var today = novel 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;
      }
  }
  if(json && json.feed && json.feed.entry && json.feed.entry.length) for(var i = 0 ; i < json.feed.entry.length ; i++ ) {
    var entry = json.feed.entry[i];
    if(numDays > 0) {
      var datePart = entry.published.$t.match(/\d+/g);
      var cmtDate = novel Date(datePart[0],datePart[1]-1,datePart[2],datePart[3],datePart[4],datePart[5]);
   
      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 = novel Object();
      commenter.author = entry.author[0];
      commenter.count = 1;
      topcommenters[hash] = commenter;
    }
  }
  if(json && json.feed && json.feed.entry && json.feed.entry.length && json.feed.entry.length == 200) {
    ndxbase += 200;
    document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/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 inwards topcommenters) tuplear.push([key, topcommenters[key]]);
  tuplear.sort(function(a, b) {
    if(b[1].count-a[1].count)
        provide b[1].count-a[1].count;
    provide (a[1].author.name.$t.toLowerCase() < b[1].author.name.$t.toLowerCase()) ? -1 : 1;
  });
  var realcount = 0;
  for(var i = 0; i < maxTopCommenters && i < tuplear.length ; i++) {
    var exceptional = tuplear[i][1];
    if(item.count < minComments)
        break;
    document.write('<di'+'v class="top-commentators">');
    document.write(replaceTopCmtVars(txtTopLine, item, realcount+1));
    document.write('</d'+'iv>');
    realcount++;
  }
  if(!realcount)
    document.write(txtNoTopCommenters);
}
document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false&max-results=200&alt=json-in-script&callback=showTopCommenters"></'+'script>');
</script>
3. Now you lot only convey to salve changes in addition to you're done!

Configuration

- To modify the issue of users displayed inwards the gadget, expect for var maxTopCommenters = 8; in addition to modify 8 amongst whatsoever issue you lot want.
- To modify the avatar size of the commenters, expect for var sizeAvatar = 33; in addition to modify issue 33 amongst the issue of pixels you lot want. - To enshroud your cite or roughly other username, supercede the someotherusertoexclude text betwixt the quotes (to add together more, add together roughly other comma afterwards the text inwards red, in addition to then type the username you lot desire to exclude betwixt the quotes)

Popular posts from this blog

Telekiller - A Tool Session Hijacking In Addition To Stealer Local Passcode Telegram Windows

Efiguard - Disable Patchguard Together With Dse At Kicking Time

Cameradar V2.1.0 - Hacks Its Mode Into Rtsp Videosurveillance Cameras