Cara Membuat Widget Top Komentator dengan Foto/Avatar

Daftar isi: [Tampil]
Cara Membuat Widget Top Komentator dengan Foto/Avatar - Widget top komentator yang satu ini berbeda dengan top komentator yang pernah saya buat di blog saya yang lama (sekarang sudah terjual). Top komentator yang ini bukan berupa nama saja, tetapi ditambah dengan foto/avatarnya sekalian.

Cara Membuat Widget Top Komentator dengan Foto/Avatar

Cara Membuat Widget Top Komentator dengan Foto/Avatar :


  • Login ke Blogger
  • Pilih Tata Letak => Tambah Gadget
  • Pilih HTML/JavaScript
  • Copy kode dibawah ini dan paste ke dalamnya
<style type="text/css">
    .top-commenter-line {margin: 3px 0;}
    .top-commenter-line .profile-name-link {padding-left:0;}
    .top-commenter-avatar {vertical-align:middle;}
    </style><br />
<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://aldoseo.blogspot.com/2012/10/cara-membuat-widget-top-komentator.html
    //
    // CONFIG:
    var maxTopCommenters = 10;   // how big a list of top commentators
    var minComments = 1;        // how many comments must top commentator have at least
    var numDays = 30;            // from how many days (ex. 30), or 0 from "all the time"
    var excludeMe = true;       // true: exclude my own comments
    var excludeUsers = ["Aldo SEO", "someotherusertoexclude"];     // 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 = 20;
    var cropAvatar = true;
    //
    var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHp0EhwE6qbxoGmX2HlL7tPUi9YhjekTxMYo6P9Qg7gMIVc2lIIxJgxAJWBH3_nfSY4I-6c6tf84txqXA2kvD0tzJMen8eXKg6Q6b2HXeqqOwZR50dUBGJqAEuqMGJKRB0UaFy1dmAWJo/"+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><a href="http://aldoseo.blogspot.com/2012/10/cara-membuat-widget-top-komentator.html" target="blank"><font color="red">-Get This-<font></font></font></a>

29 comments:

  1. Wahhh sepertinya baguss niee

    ReplyDelete
    Replies
    1. biar kita tau sapa aja yg paling banyak yg berkomentar di blog kita

      Delete
  2. pernah make tapi dicabut lagi hehehe :D

    ReplyDelete
  3. wah, nomor 1 nih :) harus dipertahankan

    ReplyDelete
  4. kalau mau buat award top komentar pakai ini nih biar mudah ngitungnya :D

    ReplyDelete
  5. Mas...saya copy scriptnya.Trims nih.

    ReplyDelete
    Replies
    1. mang bisa?? ini blog aja gak bisa di copy ngada ngada

      Delete
    2. Wah...ketinggala Mas ini dari Page Sourcenya Mas.

      Belum tahu ya itu trik terbaik buat anti copas :)

      Delete
  6. mantap deh , saya copas scriptnya

    ReplyDelete
  7. ijin bookmard dulu..

    mau nanya klo top komentar nya sesuai topik label ada ngak??

    ReplyDelete
  8. Kpan Ya gw msuk urutan top komentator ,,,

    hehehe

    ReplyDelete
    Replies
    1. klau kk komentar terus di blog ini
      pasti ada blog kk di top komentator

      Delete
  9. ijin copy scriptnya gan akan ku coba pasang di blog aku,terimakasih

    ReplyDelete
  10. Kerennn, bisa buat memperhitungkan award top komentar :D

    ReplyDelete
  11. Sudah Saya Coba Sob ,,

    keren widgetnya ,,

    ReplyDelete
  12. Wah kayak nya mnatep nih dii kasih ginian ..
    Khan jadi tau siapa yg rajin2 komentar ...
    nice info bro . Thx

    ReplyDelete

Blog ini tidak menerima komentar :
- OOT (Out of Topic)
- Pendek
- SPAM (Meninggalkan link)
- Promo

Powered by Blogger.