Gadget Top Comentaristas en Blogger


Hii... ahora el post dominguero será... el gadget que tenía nteriormente para las personas que más han comentado :3 ... se llama "Top Comentaristas" y lo que hace pues es mostrar una lista con avatares, nombres y número de comentarios que han hecho hasta el momento :3 ^^ y como siempre tan fácil como copiar y pegar ;3 ...

1.- En tu administrador de tu blog, seleccionas "Diseño" y ya ahi seleccionas "Agregar un gadget" en el lugar que más te guste.
2.- Seleccionas "HTML/Javascript" y a continuación solo necesitas copiar y pegar ahí el siguiente código y listo!
3.- Me encargue de traducir los ejemplos y las explicaciones de la parte de configuaraciones para que fuera mucho más sencillo editar el gadget a su gusto (para los que odian el ingles como yo), ya solo en el apartado de "CONFIGURACIONES" del propio script que esta casi al inicio del código podrán editar lo que ustedes quieran... pero les sugiero que no muevan nada que no este en español.


[javascript]
<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>
<script type="text/javascript">
//
// Gadget Top Comentaristas con avatares, por MS-potilas 2012.
// Genera una lista de los que mas comentan tomando en cuenta todos los comentarios desde el inicio del blog, o bien, puedes ajustarlo a un periodo de tiempo en dias iniciando desde la fecha actual hacia atras.
// Sitio web del gadget http://yabtb.blogspot.com/2012/05/top-commenters-gadget-with-avatars.html
// Traducido por Leslie Mishigan http://lesliemishigan.net/
//
// CONFIGURACIONES:
var maxTopCommenters = 8; // cuantos comentaristas deseas que se muestren
var minComments = 1; // minimo de comentarios necesarios para tomar en cuenta al comentarista
var numDays = 0; // dias que se toman en cuenta para el computo de los comentarios (ejemplo 30), o 0 para "desde siempre"
var excludeMe = true; // true: excluye los comentarios del administrador del blog (el administrador del blog no se mostrara en la lista
var excludeUsers = ["Anonymous", "Quien sea"]; // excluye a los usuarios especificados, Anonymous para Anonimos y "Quien sea" para excluir a esa persona, ejemplo "Leslie Mishigan"
var maxUserNameLength = 42; // cuantos caracteres acepta como maximo para el nombre del user, 0 para no cortar y menor a 4 cortara los nombres en 4 caracteres
//
var txtTopLine = '<b>[#].</b> [image] [user] ([count])';
var txtNoTopCommenters = 'No hay suficientes comentaristas para mostrar un Top.';
var txtAnonymous = ''; // empty, or Anonymous user name localized if you want to localize
//
var sizeAvatar = 28; // tamaño en pixeles del avatar
var cropAvatar = true;
//
var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgncQczaHoKL4d7Y9gM8HxYXoQ0LH7zqFV-paZGUE9mkfU-Q7Pn56o16VGfnjDs3WgmUhhyLinOBRL7BBP8ds4ux0L46ykpK4jPTYcwN_pJ9bCi9ypuQhsHiDzqD9CfPFCTuz6Wq0BtYs4/"+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
// FIN DE LAS CONFIGURACIONES
// 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;
}
}

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); // 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 && 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;
});

// 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>
[/javascript]

 

Bueno con eso termino la entrada de hoy ^^ ... seguiré publicando trucos de blogger hasta que el sistema de descargas este completamente bien hecho XP jejejeje... nos vemos ;3

 

5 comentarios:

  1. Gracias por el codigo.. para la próxima plantilla este gadget será incluido :3

    PD: otra vez mostrando mis acosos XDD

    ResponderBorrar
  2. No sabia que habias dejado blogger para venirte a wordpress XDDD pero ahora ya te sigo tanto en google+ como por email creo jaja me encanta tu diseño del blog *W*

    ResponderBorrar
  3. Yo tengo uno en forma de nube
    un beso

    ResponderBorrar
  4. XP jejejeje... me alegra que pudieras encontrarme :3 , también por eso deje un nuevo mensaje en el antiguo blog ya después lo quito... pero es más fácil si siempre me siguen por correo XP :3 saludos!

    ResponderBorrar
  5. disculpa leslie por acerte esta pregunta pero soy ueva y me gustaria q me dijeras cual es la contraseña para descargar archivos, deacarge los caps de shugo chara pero me falta la contra, seria un gran favor de parte, gracias

    ResponderBorrar