Membuat Widget Top Komentator di Blogger

+ 54 Komentar
Membuat Widget Top Komentator di Blogger - Widget top komentator berguna untuk menampilkan para komentator di blog kita dari mulai yang terbanyak komentarnya. Dengan menampilkan link komentator, maka mereka akan lebih giat lagi untuk memberikan komentar di blog kita. Kekurangan dari script ini loading
nya terasa lama ketika komentar sudah mencapai ribuan.

Script ini dibuat oleh MS Postilas, dan sudah saya edit sedikit CSS nya, sehingga sedikit berbeda dengan tampilan aslinya.

top komentator

Bagi sahabat yang ingin menampilkan Widget Top Komentator, silahkan simak langkah mudahnya :

1. Login ke Dasbor Blogger
2. Tambahkan widget HTML/JavaScript, simpan kode ini :

<style type="text/css">
.top-commenter-line img {
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
margin-left:5px;margin-right:5px;
}
.top-commenter-line {margin: 5px 0;border-bottom:1px solid #eee;padding:3px 5px 6px 0px;}
.top-commenter-line .profile-name-link {padding-left:0;font-weight:bold;}
.top-commenter-avatar {vertical-align:middle;width:30px;height:30px;
}
</style>
<script type="text/javascript">
//
// 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 maxTopCommenters = 5;   // how big a list of top commentators
var minComments = 1;        // how many comments must top commentator have at least
var numDays = 0;            // from how many days (ex. 30), or 0 from "all the time"
var excludeMe = true;       // true: exclude my own comments
var excludeUsers = ["Anonymous", "Kang Ismet"];     // exclude these usernames
var maxUserNameLength = 42; // 0: don't cut, >4: cut usernames
//
var txtTopLine = '<b>[#].</b> [image] [user] ([count])';
var txtNoTopCommenters = 'No top commentators at this time.';
var txtAnonymous = '';      // empty, or Anonymous user name localized if you want to localize
//
var sizeAvatar = 56;
var cropAvatar = true;
//
var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9V3weB9WtEg_K4Vj91TVg_snJaZ2EvmING3l7C2y7gDuVGMHUsL1qC1H-DtF77PPt-2AzbWMK6S1lLQbugB2jEmhqO2xkOAtA-kCnXyWjh9-nRNYIRz-BuQziUJkpa_lLiiM_aFjMcDI/"+sizeAvatar+"/avatar_blue_m_96.png"; // http://www.blogger.com/img/avatar_blue_m_96.png resizeable
var urlAnoAvatar = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar;
var urlMyProfile = ''; // set if you have no profile gadget on page
var urlMyAvatar = '';  // can be empty (then it is fetched) or url to image
// config end
// 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 = "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="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 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); // 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 = new Object();
      commenter.author = entry.author[0];
      commenter.count = 1;
      topcommenters[hash] = commenter;
    }
  }
  if(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;
  });

  // list top topcommenters:
  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-commenter-line">');
    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. Simpan Widget

Untuk kostumisasi, silahkan lihat CONFIG pada script di atas. Jangan lupa ganti "Kang Ismet" dengan nama sobat, supaya komentar sobat tidak masuk pada top komentator.

Apabila sobat ingin menghilangkan jumlah komentar, seperti tampilan dibawah :

top komentator

hapus kode ([count]) pada script di atas. Semoga bermanfaat...

54 komentar

Makasih sob dan work 100% di blog saya :D
SBY berkata "LANJUTKAN....!!!"

Balas

Thanks..
mantab tutornya kang... :)

Balas

bagus banget gan tipsnya,,,
Ijin save ya...

Balas

postingan ini sangat menarik serta enak dibaca, saya berharap bisa berkunjung lagi

Balas

wah, makasih banyak mas... ternyata mudah ya

Balas

terimakasih atas tutorialnya salam kenal

Balas

wah keren keren :)
ijin share ulang di blogku :) :-bd

Balas

Tutor ini saya lagi cari,tapi seperti yang di tulis di atas bahwa,berpengaruh sama yang namanya loading,gimana yah sob,hehe,,,tapi terimakasih untuk info yang satu ini,salam succes sob,,,

Balas

saya sudah coba tapi tidak bisa muncul widget yang dimaksud, (perintahnya : widget yang anda pasang telah terpasang ditempat lain)

padahal saya sudah ikuti tutorial di atas. apa ada yang salah dengna caraku?

Balas

scriprnya panjang sekali ya yang harus dipasang di dalam blog
terima kasih atas infonya dan sukses selalu buat anda

Balas

wah Bagus sekali Kag, Keran Top komentarnya.
saya save dulu ia, nanti kalo ada waktu luang saya terapkan di Blog.
terimakasih Kang informasinya,sukses selalu.

Balas

Wah maksih banyak, banya tutor blog yang saya pake dari blog sobat. Terimakasih

Balas

Untuk blog worpress gimana gan??

Balas

terima kasih sudah berbagi ilmunya,,bermanfaat sekali

Balas

nice info gan,,terima kasih dan salam kenal

Balas

artikelnya bermanfaat sekali kang,,terima kasih untuk infonya

Balas

terima kasih infonya bermanfaat sekali

Balas

wah hbat nih blogger tuts, belum lama muncul udah PR4. maju terus Kang Ismet

Balas

lumayan mesti nyimak dulu nih...........

Balas

saya masih awam kalo mslh blog,, tpi pngen ngerti..hhe

Balas

terimakasih info nya ..
salam kenal ya.

Balas

nice info Kang... dicoba doeloe :)

Balas

Keren mas..

mau masang sich tapi berat ga ni? klo ga berat saya mau masang..

Balas

saya tetep pakai script yang lama tapi akan saya coba deh....

Balas

Ini bagus widget top komentarnya supaya menarik banyak teman yang komentar diblog :).Thks Mas.

Balas

Mas izin ambil kodenya mau ditempel di sidebar blog. :)

Balas

Wah tutorialnya sangat ampuh gan.,,,membuat saya terkesima dengan yang satu ini,inspiring full ,, memang dari seorang master yang pilih tanding

Balas

|o| Terpasang dengan rapi dan apik...

Balas

manteps. jadi bukan names nya doang ya yang keliatan |o|

Balas

widget yg sempurna... |o|

[ Gabung yuk ke Direktori Backlink Gratis Berkualitas No.1 Indonesia ]

Balas

Kang Ismet boleh minta data bloggertut.com nya??

Balas

keren sob..
sudah saya coba diblog sya..

Balas

keren sob..
sudah saya coba diblog sya..

Balas

wah blognya baru ya tampilanya mas?

Balas

Menghilangkan kejenuhan saja sob... :)

Balas

terima kasih kang tutorialnya

Balas

memang benar,top komentor punya efek bagi komentor biar lebih giat lagi untuk berkomentar. Imbasnya artikel yg bnyk komentarnya punya nilai lebih dimata Google.

*katanya sih,,bener ga Kang Ismet ? ^_^

Balas

Dengan widget top commentator pada blog akan memicu banyak pembaca untuk memberikan komentar pada artikel. Link komentator yang muncul nantinya akan mendapat backlink atau tidak?

Balas

Ijin pake yah kang :D

Balas

terimakasih informasinya sangat bermanfaat sekali..

Balas

Biasanya dengan menggunakan Top komentator menjadi penyemangat buat teman-teman selalu berlomba memberikan komentar terbaiknya pada blog tersebut hehe :)

Balas

betul banget tuh..

kapan2 mampir ya ke blog saya :)http://nandarious.blogspot.com/

Balas

makasi..inponya mas
banyak mamfaat

Balas

mas ko" saya lihat setiap sricpnya ada nama onymouses ???? itu apaan yang saya tau itu onymauses itu hacker

Balas

terima kasih tutorialnya, kunjungi juga www.umatmuhammad.com

Balas

Nice Info Gan

Balas

Posting Komentar

Silahkan tinggalkan komentar sobat... Mohon jangan menggunakan link hidup, karena akan otomatis terhapus!