JMiur [E]

Esto no es nada nuevo, simplemente es una adaptación y simplificación del script que permite mostrar los últimos comentarios en la sidebar del blog.

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>
Y lo utilizo, agregando un elemento HTML donde simplemente coloco esto:
<ul id="ultimos-comentarios">
  <script src="http://nombreblog.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showrecentcomments"></script>
</ul>
En este caso, todo está dentro de una lista así que podemos personalizarla con CSS:
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:

Alexis  

¿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.

Responder
Hernán Colombera  

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

Responder
JMiur  

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

Responder
Alexis  

@JMiur Uh, bueno, gracias por la respuesta.
También te quería agradecer porque Vagabundia me ayuda mucho para ir mejorando mis blogs.
Saludos.

Responder
JMiur  

Gracias, Alex :D

Responder
Balthazar!  

Hola JMiur, tengo una duda, como capturo o muestro el nombre de la entrada donde se hizo el comentario?

Responder
JMiur  

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

Responder
Balthazar!  

Jejej gracias por responder ^^, al final he usado el script de otra forma para poder mostrar comentarios citados =P!

Saludos! ^^

Responder
PS3 Argento  

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!

Responder
JMiur  

Tendría que ver tu ejemplo online.

Responder
Pavelkapaz  

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

JMiur  

No sé qué es lo que te ha pasado pero, no hay manera alguna en que un script borre un comentario, simplemente, es imposible.

Pavelkapaz  

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.

JMiur  

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.




Pavelkapaz  

gracias jmiur por la ayuda :)

Responder
adm100388  

¡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,

JMiur  

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

Responder
Kazbam  

Usted, como siempre, facilitándole la vida a los bloggers. Muchas gracias.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive

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 ...

 
CERRAR