Cara Mengetahui Komentator Terbanyak di Blog

                Assalamu’alaikum! Wih, lama banget nggak posting tentang tutorial blog. Eh, sebelumnya ada yang liat sesuatu yang baru nggak di blog ini? Nggak penting perasaan. Skip. Pernah nggak sih tiba-tiba kepikiran “siapa sih yang komentar paling banyak di blog ini?”, kalo pernah, berarti kita jodoh sama. Nah, daripada penasaran berkelanjutan, ini nih cara mencari tahu komentator terbanyak atau top commentators di blog masing-masing :
 Untuk widget :

1. Buka dashboard lalu klik layout/tata letak,
2. Pilih add gadget dan pilih HTML/JavaScript,
3. Copy code berikut,
<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 top commentators at this time.';
var txtAnonymous = '';
//
var sizeAvatar = 33;
var cropAvatar = true;
//
var urlNoAvatar = "http://2.bp.blogspot.com/-pWdg8wLsedo/UmVWQxLdwrI/AAAAAAAAEVk/-z7YgKykkuU/s1600/avatar_blue_m_96.png" + sizeAvatar;
var urlAnoAvatar = 'http://1.bp.blogspot.com/-6B6DXCp8dek/UmVPm7D2mOI/AAAAAAAAEVU/Xz-3z2nRpUk/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) 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 = "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="'+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="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);
  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;
      }
  }
  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 = new 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 = new 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 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;
  });
  var realcount = 0;
  for(var i = 0; i < maxTopCommenters && i < tuplear.length ; i++) {
    var item = 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>
 4. Selesai, silahkan di atur tempatnya sendiri.

Catatan :

- var maxTopCommenters = 8, angka 8 bisa diganti sesuai keinginan, tergantung dari berapa jumlah komentator dari yang paling banyak komentar sampai yang paling sedikit.

- someotherusertoexclude, bisa diganti dengan nama kita sendiri agar tak muncul sebagai komentator, karena otomatis nama kita akan muncul sebagai komentator terbanyak di posisi paling atas. 

Contohnya :  

var excludeUsers = ["Anonymous", "Marfa Umi"];

Atau jika ada dua nama atau seterusnya bisa seperti ini

var excludeUsers = ["Anonymous", "Marfa Umi", "Umi Marfa"];

- var sizeAvatar = 33; ini untuk mengatur ukuran widgetnya, angka 33 bisa diganti sesuai keinginan. 

- Jika mau bentuk avatar kotak seperti punya saya, tinggal tambahkan no pada .avatar-top-commentators {

Menjadi seperti ini :

.no-avatar-top-commentators {

Dan untuk komentator terbanyak di Kedai Coretan adalah :

 Wow, terimakasih semuanya!
 
Selamat mencoba! Kalo ada yang masih bingung cara mengetahui siapa komentator terbanyak di blog, jangan sungkan untuk bertanya ya~
***

Thanks to : Helplogger.

44 comments

  1. wih...keren mbak. ada juga ya widget kayak gini. baru tahu. untuk loadingnya jadi berat nggak mbak? terus kalau ga pakai avatar (nama aja) caranya gimana?

    ReplyDelete
    Replies
    1. Nggak berat kok, asal jangan sampai 100 komentator aja hihi, belum otak atik lagi nih Mba maaf :)

      Delete
  2. Mba cara ngeditnya misal untuk lbi ini gimana?

    ReplyDelete
    Replies
    1. Untuk komentar dari peserta LBI? Aku belum tau kak soalnya kan inidiambil dari pengunjung keseluruhan hehe

      Delete
  3. Dari dulu nyari tutorialnya gak ada yang work.. tak coba ini dech siapa tau work

    Tapi kalo untuk dilaman statis bisa g umi?

    @masirwindotcom

    ReplyDelete
    Replies
    1. Ehm, aku blm nyoba sih kak, kayanya sih bisa, kayanya

      Delete
  4. Xixixi, masuk ke komentator terbanyak. :D Coba juga ah ...

    ReplyDelete
    Replies
    1. Selamat yak hihi :D Yuk dicoba :)

      Delete
  5. Waah boleh dicoba nih tutorialnya :D *aku baru tau. Makasih infonya :)

    ReplyDelete
    Replies
    1. Sama-sama, selamat mencoba :)

      Delete
  6. harus dicoba!
    thanks infonya :D

    ReplyDelete
  7. Asikkk! ternyata aku masuk 30 di besar top komentator. Hahahaha.


    @khoirinaannisa

    ReplyDelete
    Replies
    1. Pff padahal cuma komen 4 kali uwuwuw :P

      Delete
  8. Ulasan yang mantab dan berguna. Keep Blogging.

    @Ge1212y

    ReplyDelete
    Replies
    1. Terimakasih kunjungannya ya :)

      Delete
  9. Sempat menemukan sih widget seperti ini di beberapa blog lain.
    Mungkin saya nyimak dulu aja yambak.
    Ohiya salam kenal.

    ReplyDelete
    Replies
    1. Iya selamat bewe, salam kenal juga :)

      Delete
  10. wah baru tau ada widget keren gini, boleh di coba hihi

    ReplyDelete
  11. Keren-keren Mba, kapan-kapan nyoba, tapi kalau scrip yang html gitu suka pusing ngedit nya @rin_mizsipoel

    ReplyDelete
    Replies
    1. Lah iya lama-lama mata jadi sharingan :(((

      Delete
  12. Replies
    1. Terimakasih kunjungannya ya :)

      Delete
  13. lha... aku kok malah baru kepikiran setelah maen ke blognya si mbak ya hehhehe.. jadi penasaran pengen tau, siapa ya penggemar rahasiaku, eh komentator terbanyak di blogku maksudnya :D

    ReplyDelete
    Replies
    1. Uhuuy pssst siapa tau ada stalker nih :D

      Delete
  14. langsung saya coba di blog ah...hehe...makasih ya

    ReplyDelete
  15. ilmu baruuu haa ga pahaaammm... bingung lambat-lambat belaajr..

    mampir ke blog aku ya kak http://mutheas.blogspot.com
    @mutmuthea

    ReplyDelete
  16. Wah..baru tau ada widget seperti ini unik. Html'y lumayan panjang..size'y bs2 memperberat blog ga ya

    ReplyDelete
  17. Horeee ranking 3! :D
    Nah, enggak kepikiran nih yang kayak ginia. Terima kasih banyak buat tutorial kali ini. ^_^

    ReplyDelete
    Replies
    1. Yep, terimakasih bwnya kak :)

      Delete
  18. trims bu. saya coba deh

    ReplyDelete

Hi, I'm Marfa. Thank you for visiting and reading, just give your comment and tell me if there are some typos^^

Home