Hôm nay là

Tiện ích "Xếp Hạng Bình Luận"

Thứ Hai, 7 tháng 5, 2018 - - No comments - lượt xem


Các bạn có thể xem trực tiếp trên blog này của DVD;
đó là tiện ích Top comments

Đây là tiện ích xếp hạng số lần các blogger bình luận (cảm nhận, comment) nhiều nhất trên blog của bạn, cung cấp cho bạn chi tiết số lần bình luận của blogger đó trên blog của bạn trong một khoảng thời gian nhất định do bạn chọn. Trong code này, khoảng thời gian được chọn là 30 ngày gần nhất.

Thực hiện:

1/ Đăng nhập blogspot, vào Bố cục, nhấp Thêm tiện ích.
2/ Nhấp chọn tiện ích HTML/Javascrip. Đặt tên tiêu đề, ví dụ: Bình luận nhiều nhất. Copy code dưới đây dán vào khung nội dung của tiện ích:

<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 = 10; 
var minComments = 1;     
var numDays = 30;         
var excludeMe = true;    
var excludeUsers = ["Anonymous", "Đến Đỗ Văn", "someotherusertoexclude"]; 
var maxUserNameLength = 42;
//
var txtTopLine = '<b>[#].</b> [image] [user] ([count])';
var txtNoTopCommenters = 'No top commentators at this time.';
var txtAnonymous = '';
//
var sizeAvatar = 50;
var cropAvatar = true;
//
var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi84Q_bFj5uvxI14gsfzAVUHi13b6Vuj0X4kml6s5OB33ttr4RXR7AQZLmyKfZahV_SfWAHqSg0NOAZaaZI-8-pqJOpfjs22k6of19ownl5HZ1BvCa42hxKBANgoWd_NBKOuGFPiDoyAr-l/s1600/avatar_blue_m_96.png" + sizeAvatar;
var urlAnoAvatar = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSV6HDYWowRzMMfLJba4NARjt1xpoP2HiXwSZOuzokIs6BFKkL-GxVAw4ZBdxLzMprFwiCvEwa6gT1dxXlnHPBeVhTxCQhRXI00WTKHzccKgqr9bEWAKjUPzaNTOxYAP5BzOrfcfFe-_1g/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 = "https://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 = 'https://www.google.com/s2/favicons?domain=' + parseurl.hostname;
    }
  }
  if(urlMyProfile != "" && authorUri == urlMyProfile && urlMyAvatar != "")
    avaimg = urlMyAvatar;
  if(avaimg == "https://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="https://'+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="https://'+window.location.hostname+'/feeds/comments/default?redirect=false&max-results=200&alt=json-in-script&callback=showTopCommenters"></'+'script>');
</script>

@ Bạn có thể điều chỉnh tùy ý:

- var maxTopCommenters = 10; xếp hạng 10 người bình luận nhiều nhất.
- var numDays = 30; xếp hạng trong 30 ngày gần nhất. Nếu muốn không giới hạn thời gian thì bạn thay 30 bằng 0.
- var excludeUsers = ["Anonymous", "Đến Đỗ Văn", "someotherusertoexclude"]; không xếp hạng những bình luận vô danh và để loại bỏ những bình luận của chính bạn thì bạn thay tên bạn vào tên Đến Đỗ Văn giữa hai ngoặc kép.
- var sizeAvatar = 50; avatar có kích thước là 50×50 px; bạn muốn to hay nhỏ hơn thì thay đổi số 50.


3/ Nhấp Lưu. Kéo tiện ích vào vị trí bạn muốn. Nhấp Lưu sắp xếp.
4/ Nhấp Xem blog để thưởng thức kết quả.

DVD chúc các bạn thành công!

dovaden2010

Nguồn:
https://cuongphieu.vn/xep-hang-binh-luan-top-commentators-widget-cho-blogger-co-avatar/


Không có nhận xét nào:

Hướng dẫn viết nhận xét:
- Dán link ảnh trực tiếp vào khung nhận xét không cần dùng thẻ.
* Chú ý: Link ảnh phải đặt cuối cùng. Sau link ảnh đã dán, không gõ thêm bất kỳ ký tự nào nữa, kể cả nhấn Enter.
- Thêm một vài biểu tượng cảm xúc...

Tiện ích hướng dẫn comment và ký tự emoticons Zing

Hướng dẫn viết nhận xét:
- Gõ (hoặc copy và dán) ký tự bên phải biểu tượng cảm xúc muốn chọn vào khung nhận xét.
- Dán link ảnh trực tiếp vào khung nhận xét không cần dùng thẻ.
* Chú ý: Link ảnh phải đặt cuối cùng. Sau link ảnh đã dán, không gõ thêm bất kỳ ký tự nào nữa, kể cả nhấn Enter.
:)) :(( :) :-ss =)) :( :d @-) :p :-o [-( :-? :-t b-( =d>

Tiện ích hướng dẫn comment và ký tự emoticons Yahoo

Hướng dẫn viết nhận xét:
- Gõ (hoặc copy và dán) ký tự bên phải biểu tượng cảm xúc muốn chọn vào khung nhận xét.
- Dán link ảnh trực tiếp vào khung nhận xét không cần dùng thẻ.
* Chú ý: Link ảnh phải đặt cuối cùng. Sau link ảnh đã dán, không gõ thêm bất kỳ ký tự nào nữa, kể cả nhấn Enter.
:(( :( :)) ~X( :-h :-? b-) *-:) ~O) @};- >:D< =)) :) :-* :D [-X x( :-o =D> :@) :P :"> ;;) ;) :X =(( :-/