Es una adaptación para que quien siga las entradas donde se habla de Json y su uso en Blogger no se haga lio (yo mismo) y una simplificación ya que varias de las las opciones como la fecha y el título de la entrada no suelen usarse habitualmente así que de nada sirve tener esa parte del código.
Como siempre, el script con la función va antes de </head>:
<script type='text/javascript'> //<![CDATA[ var comsmaxamostrar = 10; // definimos la cantidad de comentarios a ser leidos var comslongitud = 60; // definimos la longitud máxima de esos comentarios function showrecentcomments(json) { var entry, comulr, comcontent, salida; // el bucle que leerá los comentarios for (var i=0;i<comsmaxamostrar;i++) { // leo y guardo el dato entry = json.feed.entry[i]; // si no hay suficientes, termino if (i==json.feed.entry.length)break; // busco la dirección URL de comentarios for (var k = 0; k < entry.link.length; k++) { if (entry.link[k].rel == 'alternate') { comulr=entry.link[k].href; break; } } // busco el comentario en si mismo if ("content" in entry){ comcontent = entry.content.$t; } else if("summary" in entry) { comcontent = entry.summary.$t; } else { comcontent = ""; } // lo transformo en texto puro y si es necesario, lo corto para que no supere el largo máximo var re=/<\S[^>]*>/g; comcontent=comcontent.replace(re,""); if (comcontent.length>comslongitud) { comcontent = comcontent.substring(0,comslongitud) + " …"; } // ya tengo todos los datos así que armo el HTML a mostrar que puede ser cualquier cosa salida = "<li>"; salida += "<span>" + entry.author[0].name.$t + "</span>"; salida += "<a target='_blank' rel='nofollow' href='" + comulr + "'>" + comcontent +"</a>"; salida += "</li>"; // lo escribo document.write(salida ); } } //]]> </script>
<ul id="ultimos-comentarios"> <script src="http://nombreblog.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showrecentcomments"></script> </ul>
ul#ultimos-comentarios { /* es el rectángulo contenedor */ } ul#ultimos-comentarios li { /* cada item de la lista */ } ul#ultimos-comentarios li span { /* el nombre del autor */ } ul#ultimos-comentarios li a { /* el contendio es un enlace al comentario en si mismo */ }
18 comentarios:
¿Cómo puedo implementar algo así, pero que sea con las más comentadas? Como el de las entradas más leídas que ahora ofrece blogger, pero con las más comentadas.
¿Ideas?
Saludos.
Buenos dias!
Quería consultarte algo, no entiendo en que momento y que tipo de objeto es el que esta recibiendo como parametro la función showrecentcomment.
Y particularmente que se hace en esta linea...
src="http://nombreblog.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showrecentcomments"
Muchas gracias de antemano
Alexis:
No. No hay algo así que yo sepa. A menos que sea blogger quien nos da ese dato, usar los feeds para algo semejante sería un proceso excesivametne largo.
Hernán Colombera
Lo que ser recibe con el script es un string en forma Json que contiene aquello que se ha solicitado y que eseo que indica el atributo SRC.
Este es el feed de los comentarios del blog:
http://nombreblog.blogspot.com/feeds/comments/default
Lo leemos con paámetros:
http://nombreblog.blogspot.com/feeds/comments/default?parametros
alt=json-in-script
indica que lo queremos en formato Json para utilziar en un script
callback=showrecentcomments
indica el nombre de la función que se ejecutará y que interpretará esos textos
@JMiur Uh, bueno, gracias por la respuesta.
También te quería agradecer porque Vagabundia me ayuda mucho para ir mejorando mis blogs.
Saludos.
Gracias, Alex :D
Hola JMiur, tengo una duda, como capturo o muestro el nombre de la entrada donde se hizo el comentario?
La variable comulr contiene el enlace con el agregado de #comment-XXXXXX
así que podría descomponerse así:
var XXX = comulr.split("#");
y XXX[0] contendría la URL del post
Jejej gracias por responder ^^, al final he usado el script de otra forma para poder mostrar comentarios citados =P!
Saludos! ^^
Hola JMiur, hace tiempo que quiero tener el gadget de ultimos comentarios igual al tuyo, hasta con el boton de mostrar mas comentarios, pero solo con distintos colores, ya he probado con las 3 entradas que escribiste antes, y no me queda... me podes ayudar? Si me lo queres mandar por email no hay problema: fedeee.08@hotmail.com
Desde ya muchas gracias!
Tendría que ver tu ejemplo online.
Hola JMiur.
primero agradecer el tutorial.. yo aplique ya hace un tiempo los últimos comentarios que utilizas en mi blog, pero acabo de tener un inconveniente. Sucede que hace poco cree mi primera "pagina" del blog para colocar una pequeña descripción del autor del blog.. y paso que una persona al haber hecho un comentario en dicha pagina desapareció en consecuencia los "últimos comentarios".. que en mi blog lo tengo como "Rompen el silencio"...
nose si sabes que ha pasado u_u
agradecería tu ayuda
No sé qué es lo que te ha pasado pero, no hay manera alguna en que un script borre un comentario, simplemente, es imposible.
No.. lo que desaparecio no fue el comentario, sino la barra de "Últimos comentarios"... www.sicarioinfernal.blogspot.com...
pienso que causo algún problema al tener que mostrar un comentario de una pagina... por eso saque esa deducción.
OK, había entendido al revés.
Me parece que el problema se genera porque el script que estás usando no contempla los comentarios en las páginas estáticas y allí salta el error. Es anterior a la existencia de esas páginas.
En principio, te diría que el que se muestra en esta entrada, no debería provocar ese error.
gracias jmiur por la ayuda :)
¡Buenas, JMiur!
Muchas gracias por tus instructivos, la verdad es que son de mucha ayuda.
Tengo un problema que me pasó recientemente, pero no puedo solucionarlo, y no sé a quién más recurrir que a vos. Espero que me puedas ayudar...
Mi problema es con estos "Últimos comentarios", yo utilizo el siguiente Javascript: http://dl.dropbox.com/u/18413789/UltimosComentariosET.js
Pero hace unos días lo modifiqué, agregando unas sentencias dentro, al principio no funcionaba, pero por alguna razón, funcionó después de un rato, dándole tantas veces al botón "Publicar" para que se guarde. Hace unos días modifiqué la plantilla del blog (no el javascript), y raíz de ello, el javascript no aparece, es decir, sale vacío en la página principal. Te mando un enlace para mostrar cómo está saliendo:
http://img40.imageshack.us/img40/2843/20120831174547.png
Intenté todo, desde modificar el javascript y dejarlo con un solo document.write adentro. Resubí el javascript, lo renombré de todas formas... Y ahora no solo sucede esto, sino que, quiero utilizar el javascript antiguo, y me sucede lo mismo, hasta intenté usar el original por el que partí... igual resultado.
¿Alguna idea de por qué puede estar pasando esto?
Mi única teoría de que esto pueda pasar, es por el navegador (lo modifiqué desde un chrome de otra PC no habitual). En todos los navegadores se ve igual (sin el "Últimos comentarios") una vez que hice el cambio, y por más que lo cambie ahora, el problema persiste.
No sé qué puedo hacer, porque no sé dónde está el problema para poder solucionarlo, y cada vez me estresa más.
¿Me podés ayudar para detectar el problema?
¡Muchas gracias!
Saludos,
Si se trata de este blog:
http://www.eizoutokuten.com/
El script que carga los feeds tiene esta url:
http://www.eizoutokuten.com/feeds/comments/default?start-index=1?&alt=json-in-script&callback=commentDisplay
que es errónea ya que ha y doscaracteres ? en el query; debería ser:
http://www.eizoutokuten.com/feeds/comments/default?start-index=1&alt=json-in-script&callback=commentDisplay
Usted, como siempre, facilitándole la vida a los bloggers. Muchas gracias.
¿Quiere dejar un comentario?
recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...
Nota: sólo los miembros de este blog pueden publicar comentarios.
Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.
Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...