Hace un par de días, entre las cosas que vi en blogger-templates.blogspot.com me encontré otro widget y decidí probarlo sin demasiadas esperanzas. Para mi sorpresa, funcionó perfectamente. Se llama Recent Comments Widget.
Para utilizarlo, debemos ingresar el título que es que se verá, la URL del blog, la cantidad de comentarios a mostrar, la cantidad de caracteres máximos de los sumarios y establecer si queremos que se muestren la fecha y el titulo del post.
Luego, basta Aplicar y Agregar. Blogger nos pedirá autorización y la ubicará al tope de la sidebar per o podemos moverla yendo a Plantilla, Añadir y organizar elementos de la página. Pero ... siempre hay un pero ... está en inglés, sí, TODO en inglés. Aquí, entonces, viene lo complicado. Primero que nada, ¿qué es lo que agrega ese widget?
Al editar elemento nos vamos a encontrar con algo así:
<script style="text/javascript"
src="http://giga.ovh.org/rc">;
</script>
<script style="text/javascript">
var a_rc=5;
var m_rc=false;
var n_rc=false;
var o_rc=50;
</script>
<script src="URL_blogfeeds/comments/default
?alt=json-in-script&callback=showrecentcomments">
</script>
la primera, carga un script externo que se encuentra alojado en http://giga.ovh.org/rc
la segunda, da valor a una serie de variables que se corresponden con las opciones del widget:
- a_rc=5 es la cantidad de comentarios
- m_rc=false indica no agregar la fecha (true para agregarla)
- n_rc=false indica no agregar el título del post (true para agregarla)
- o_rc=50 es la longitud máxima a mostrar de cada comentario
function showrecentcomments(json) {
// para cada uno de los comentarios
for(var i=0;i<a_rc;i++) {
var b_rc=json.feed.entry[i];var c_rc;
if(i==json.feed.entry.length)break;
for(var k=0;k<b_rc.link.length;k++) {
if(b_rc.link[k].rel=='alternate') {
c_rc=b_rc.link[k].href;break;
}
}
c_rc=c_rc.replace("#","#comment-");
var d_rc=c_rc.split("#");
d_rc=d_rc[0];
var e_rc=d_rc.split("/");
e_rc=e_rc[5];
e_rc=e_rc.split(".html");
e_rc=e_rc[0];
var f_rc=e_rc.replace(/-/g," ");
f_rc=f_rc.link(d_rc);
var g_rc=b_rc.published.$t;
var h_rc=g_rc.substring(0,4);
var i_rc=g_rc.substring(5,7);
var j_rc=g_rc.substring(8,10);
var k_rc=new Array();
// en esta parte cambié los textos de los meses (en mi caso, no los uso)
k_rc[1]="Ene";
k_rc[2]="Feb";
k_rc[3]="Mar";
k_rc[4]="Abr";
k_rc[5]="May";
k_rc[6]="Jun";
k_rc[7]="Jul";
k_rc[8]="Ago";
k_rc[9]="Sep";
k_rc[10]="Oct";
k_rc[11]="Nov";
k_rc[12]="Dic";
if("content" in b_rc){
var l_rc=b_rc.content.$t;
} else if("summary" in b_rc) {
var l_rc=b_rc.summary.$t;
} else var l_rc="";
var re=/<\S[^>]*>/g;
l_rc=l_rc.replace(re,"");
// de aquí en adelante es donde se arma el texto de salida
// donde eliminé todas las palabras inglesas y sólo dejé los datos
// aquí, se agrega la fecha
if(m_rc==true)document.write(k_rc[parseInt(i_rc,10)]+' '+j_rc+' ');
// agregar el nombre del autor del comentario (ver Nota)
// en este caso, lo modifiqué, poniendo cada entrada
// dentro de una etiqueta LI y resaltando el nombre con un color
document.write('<li><b><font color=#color>'
+b_rc.author[0].name.$t+'</font></b>');
// agregar el título del post
if(n_rc==true)document.write(f_rc);
// luego del nombre del autor del comentario, una nueva línea
document.write(':<br />');
// el sumario del comentario será el vínculo al post
document.write('<a href="'+c_rc+'">');
// el texto del vínculo, será el sumario
// pero, primero, se verifica la cantidad de caracteres
// ¿es menor que la cantidad máxima deseada?
if(l_rc.length<o_rc) {
// SI, entonces, no hay nada que arreglar
document.write(l_rc);
} else {
// NO, entonces, hay que "cortarlo"
l_rc=l_rc.substring(0,o_rc);
var p_rc=l_rc.lastIndexOf(" ");
l_rc=l_rc.substring(0,p_rc);
// y le agregamos tres puntos suspensivos al final
document.write(l_rc+'…');
}
// cerramos la etiqueta LI y se sigue con el próximo
document.write('</a></li>');
}
}
document.write('<a href="'+c_rc+'">'+b_rc.author[0].name.$t+'</a> commented');
He intentado diferenciar las instrucciones que pueden servir para personalizar la rutina pero, reconozco que es complicado para quien no tiene algún conocimiento del tema, sin embargo, algo así, incluso sin cambios, funcionará en la mayoría de las plantillas porque, generalmente, las sidebars usan la etiqueta LI para separar los items y por lo tanto, el formato será el mismo que tiene cualquier otra parte del blog.
La parte del script que más interesa es "relativamente simple". Usando la función document.write();, se va creando la cadena de texto que luego será mostrada.
En ente caso, el resultado del código HTML será:
<li>
<b><font >Nombre</font></b>:<br/>
<a href="URL_comentario">texto_comentario …</a>
</li>
77 comentarios:
Muy bueno,jmiur,en mi blog tengo instalado esto de los comentarios,pero como vos bien decís,tarda en aparecer.
Seguro voy a cambiarlo por este widget,pero antes tenés que explicarme un poco, porque la verdad me perdí,jaja!
Te contesté por mail, espero que te sirva :)
Gracias Jmiur!,ya puse el código,perfecto!
Mil gracias :)
Saludos.
Acabo de verlo :D
Yo tampoco me entero.
Me podria explicar un poco mas.
¿Puedes aclararme un poco el problema?
En la pagina de blogger templates meto mi dirección url y demas, pero cuando le doy a aplicar no se me abre nada.
Acabo de hacer la prueba ACA.
Ingreso los datos, botón APPLY y luego botón ADD WIDGET y todo funcionó normalmente.
Ya lo he conseguido.
Sin embargo no soy capaz de conseguir ponerlo en español.
Me podrias contestar por mail como hacerlo???
Muchas gracias.
No tengo inconvenientes pero no he encontrado yu dirección de mail.
No lo publiques acá. Envíame un correo a:
vagabundia@gmail.com
e incluye el contenido del elemento que has agregado porque yo no poseo una copia del original.
Veremos qué puede hacerse :)
que buen material... te loa agradesco mucho. ahora, me quede colgado con lo del codigo del script... ¿donde me meto ese codigo?
gracias
Puedes hacer dos cosas, usar el widget que provee blogger-templates, en cuyo caso no necesitas nada pero, está en inglés, o modificar el script y crear un nuevo archivo JS.
En este último caso, deberás subirlo a un servidor, por ejemplo, mira este post para que tengas una idea de como hacerlo en forma rápida.
Un archivo JS (JavaScript), no es más que un archivo de texto. Hay dos archivos JS que tengo guardados y que puedes bajar a tu PC para verlos: 1, 2.
También, si quieres, puedes usarlos provisoriamente hasta que subas el tuyo.
gracias socito, se pasó
Pues me salió un chiste... al final decidí usar tu archivo .js, no te molesta verdad? pero de todos modos tengo que cambiar el color así que lo tendré que bajar, y poner en otro lau jejeje.
No hay problema. Lamentablemente, todos los colores están en el script. No hay más remedio que modificarlo y subirlo a otro lado.
los puntos suspensivos " &hellip; " no salen :S
algo mal en el codigo ?
Sí, lo lamento, salió mal escrito en el post.
Ya lo he corregido pero igual lo escribo acá:
document.write(l_rc+'…');
Me parecio super dificil la explicacion, no se podra simplificar o explicar mas paso a paso como si fueramos tontos????
Saludos!!!
Esto es lo más sencillo que puedo explicarlo; lo que ocurre es que hay cosas complejas que no pueden simplificarse más y que requieren alguna base como para poder avanzar. Es lógico y nos pasa a todos.
Mi sugerencia sería que utilizaras el widget original que puedes instalar directamente desde ACÁ y que luego, cuando funcionara, vieras qué te gustaría modificar y, en todo caso me envías un mail.
Es genial. Casi exactamente lo que hice cuando estaba en Blogger. Luego le vas modificando cosas, le sacas otras. Es lo mejor que vi para los comentarios en Blogger.
Sí, Nico, por lo visto, es lo único que funciona bien y es casi instantáneo, parecido a lo que hace WordPress.
PD: gracias por el apoyo moral :D
Había visto ese Widget hace tiempo y me resistí a añadirlo por el dichoso idioma ¿Dónde estaba yo el día que mostraste esta entrada?
Supongo que en alguna parte, me habría gustado verla antes, claro... no tendrías aún para suscribirse :(
No hace mucho tiempo de este post pero es lógico perderse en este mundo virtual :)
Muchas veces veo cosas que me parecen novedosas y después, cuando miro la fecha resulta que son cosas escritas hace dos años :$
Lo bueno de internet es eso, la fiesta empieza cunado uno llega :D
Funciona a la perfección...muchas gracias.
Buen dato. Sin embargo no le entendi nada a tu explicacion, mejor fui a la pagina que pusiste donde esta ese Widget y lo puse yo mismo.
Mi unico problema es que quisiera cambiar al espanol donde dice commented: x comento.
Si sabes como, te lo boy agradecer mucho. Saludos y ;) gracias por el dato
La explicación se refiere justamente a eso. Para cambiar los textos debe editarse el script, algo que debe hacerse con cuidado.
Con toda la explicacion me marie, solo quiero cambiar:
Commented x comento, solo quiero cambiar esa parte.
como ago eso?
Deberías editar el script, buscar palabra commented y cambiarla por comento.
Pero, como no tienes el script sino que estás usando el widget, no puedes cambiarlo.
Y cual es el script?
Son los codigos que muestras en la entrada?
El script original es está acá:
http://giga.ovh.org/rc
el modificado es el que muestra el post.
Estupendo script pero tengo un problemilla.
Debajo de los comentarios me parece la imagen de un lápiz como para editar este elemento y no se que he hecho mal.
Puedes ver mi script aqui
Por lo que veo, parece que al editarlo has dejado alguna etiqueta mal cerrada. Déjame ver si encuentro el error y te envio el script corregido por mail.
hola JMiur aqui vistitando a mi salvador de problemas y dudas ;) quería saber cómo hago para que me salga las estrellitas delante de los últimos comentarios como lo tienes tu , podría ser posible? un saludo
En términos generales, esa es una propiedad de todos los items de las listas:
.sidebar li {
.........................
list-style-image:url(IMAGEN);
list-style-position:outside;
list-style-type:none;
}
JMiur volviendo a molestarte con este tema, te pediria me indiques porqué en el mío no se muestra, tengo que actualizar unas tantas veces para que se muestren los ultimos comentarios, a lo que tú no tienes ningún problema con ello :O
Gracias
No veo ningún motivo por el que deba ser así, según leo, es exactamente el mismo script.
Entonces porqué no carga el script a la primera??? :( seguiré esperando que se solucione solo xD
Hola JMiur,
En que entrada explicas como hacer los ultimos comentarios pero como lo tines ahorita, con una imagen a la izquierda y que cambien los fondos cuando pasa el raton. En pocas palabras asi como tu lo tienes se ve muy bien.
Detalles para eso no tengo. Se trata de usar una limagen de fondo o bien en la propiedad list-style-image de las listas y usar :hover en los enlaces.
Hola JMiur.
Por suerte eh conseguido que la gente comente, poco, pero al menos se expresan. :D
Y como estuve cambiando el diseño, mas que nada para innovarme a mi mismo mas que al publico, eh decidido poner los últimos comentarios en el blog, y de paso incentivar mas a que los visitantes comenten.
Mi duda es: ¿Si, como este post es algo antiguo, este es el método que utilizas actualmente para mostrarlos?
Sí, Shark_Bloody; sigue siendo el mismo excepto que, en lugar de estar en una rchivo externo, el script está en la plantilla pero el código es igual.
De qué forma se podría cambiar el autor del comentario ( b_rc.author[0].name.$t ) cuando es Anonymous por Anónimo?
Gracias. Saludos
Probablemente, modificando el script. Algo así:
if(b_rc.author[0].name.$t=='Anonymous ') {b_rc.author[0].name.$t=Anonimo;}
Funcionó haciendo dos cambios: 'Anonymous' (sin el espacio) y 'Anónimo' (con comillas).
Otro paso para intentar ponerlo todo en español.
Gracias.
Perfecto, jesgo. Tienes razón, esos dos errores los cometí yo al trnscribir esa línea.
A mí no me muestra nada xD. Puse el artilugio de manera directa y sólo me muestra el título: "últimos comentarios". Después de eso no muestra nada.
Porque no estás llamando a la función:
<script src="URLDETUBLOGcomments/default?alt=json-in-script&callback=showrecentcomments">
</script>
Te hago una pregunta: ¿ si pongo el artilugio de forma directa desde la web blogger-templates debería funcionar sin problemas? Sin tener en cuenta el idioma quiero decir. Porque cuando lo agregué de forma directa no funcionó xD. Probé hacer un window.onload=function(){ alert('carga'); } para ver si no era mi blog, pero el alert funciona :-|
El script que estás tratando de cargar no funciona: http://giga.ovh.org/rc
Dice: "El servidor no puede atender su solicitud por el momento debido a problemas de mantenimiento o de capacidad."
Puede ponerse directamente en un elemento HTML o bien en la plantilla usando :
<script type='text/javascript'>
//<![CDATA[
y aqui el contenido del script
//]]>
</script>
Bueno, no me funcionaba, lo intenté de distintas maneras y jamás supe por qué. Copie el script y lo pegué en mi plantilla, pero tampoco funcionaba. Ahora, descubrí otra cosa :P "pincháis en "add a page element" y seleccionais un widget de tipo feed. Se os pedirá la url del feed, que es urldelblog/feeds/comments/full". Ahi te aparece un menú para configurarlo. Es más simple :). link: http://misvaguedades.blogspot.com/2007/04/truco-para-blogger-ltimos-comentarios.html
Sí, es más simple pero, tal como dice el post, no se actualizan bien y la salida no es controlable. Si no te funcionaba, simplemente, estabas cometiendo un error al colocarlo.
te muestro como lo había puesto y decime qué está mal - si tenés tiempo claro-: http://php-online.com.ar/muestras/coment.php
Saludos y gracias! ;)
Pués eso que se ve ahí es un código erróneo con instrucciones que están incompletas o han sido modificadas al subirlas o malinterpretadas por el servidor . Por ejemplo, dice:
for(var" k="0;k" b_rc="json.feed.entry[i];var"><b_rc.link.length;k++){
cuando debría decir:
for(var k=0;k<b_rc.link.length;k++) {
o:
k_rc[2]="Feb" h_rc="g_rc.substring(0,4);
cuando deberia decir:
k_rc[2]="Feb";
Todo lo demás es igual, tiene demasiados errores como para corregirlos. Fíjate en el script original y verás las diferencias.
Se ve que me olvidé de darle publicar comentario hoy a la mañana XD.
Bueno, te comento, esas variables que aparecen extrañas y rompen el bucle aparecen después de poner el script en el gadget. El script lo pegás bien, pero blogger lo modifica.
¿Y por qué no lo colocas en la plantilla como te dije? Entre etiquetas CDATA:
<script type='text/javascript'>
//<![CDATA[
y aqui el contenido del script
//]]>
</script>
Lo probé también, pero no me funcionó. Me voy a dar por vencido unos días xD - tengo mucho para programar ya -. Gracias por responderme, excelente el blog :D ¡saludos!
Y sigo diciendo lo mismo. Mientras no vea un ejemplo, con el código colocado y con el script alojado y accesible, el resto es sólo especulación y poco puede hacerse.
El script lo pegué antes del body como me indicaste, entre las etiquetas DE CDATA - que no me deja pegar en el comentario -
Y puse en el gadget el script con las variables y el otro que tiene la url del blog. Probé después cambiar el CDATA y ponerlo después del body, probé también poner las var dentro del cdata junto con la función; y en el gadget, el script llamando a la función. Tampoco funcionó.
También probé crear un javascript.js y subirlo a mi host con la función de igual manera que el link "s/r/c="http://giga.ovh.org/rc"" y reemplazarlo por la dirección en la que lo puse. Tampoco funcionó :P XD. Por eso lo dejé colgado y usé el otro.
Bien, pero ese ejemplo no lo he visto :)
hola...he querido copiar el codigo que pusiste arriba...primero lo añadí en la plantilla del blog pero el codigo fue alterado, al igual al que sale en el comentario 50...por lo tanto subí el codigo a google sites....y desde blogger mando a llamar el script pero no me salen los comentarios recientes.....
help..... por cierto el ultimo trozo de codigo no se donde agregarselo...
agradesco tu ayuda....la direccion de mi blog es http://upolibackstage.blogspot.com/
El navegador me devuelve un mensaje de error:
The resource from this URL is not text:
http://.......s-sites.googlegroups.com/site/nesmago/comments.js?attachauth=...........&attredirects=0&d=1
Si quieres que el script esté en la plantilla misa (que es lo mejor), Coloca el código antes de </head> usando CDATA:
<script type='text/javascript'>
//<![CDATA[
....... aqui colocas las funciones
//]]>
</script>
En un elemento HTML, hay códigos que se modifican solos (no sé porque motivo).
pues....jeje...ya he solucionado el problemita que tenia... :)
Una pregunta JMiur, ¿Cómo puedo eliminar los comentarios mostrados por el script de aquellos posts que he eliminado? ya que cuando hice algunos comentarios para probar el script, en un post de pruebas, y luego elimine la entrada, el widget me sigue mostrando los comentarios..Trate de solucionarlo, colocando antes de "/b:skin":
li#comment-cXXXXXXXXXXXXXXXXXXX a {display:none;}
Pero, no me funciona..
Cristian:
Entiendo pero el problema es que los comentarios se extraen de los feeds y estos, aún cuando se elimine la entrada, siguen existiendo y tardan bastante en desaparecer, por eso se siguen mostrando y no hay manera de ocultarlos con CSS porque cada enlace es diferente y no hay forma de identificarlos.
Podría hacerse, modificando el script de alguna forma pero sería muy engorroso. Lo mejor, se me ocurre es que agregues comentarios para que esos, vayan siendo reemplazado por los nuevos.
He hecho el Script directamente desde la pagina de blogger-templates.blogspot.com pero no funciona en mi Blog no entiendo por que? algo que veo diferente con respecto a tu código es que en el Script que genera el widget es:
script src="URL_blogfeeds/feeds/comments/default
?alt=json-in-script&callback=showrecentcomments"
¿Puedes Ayudarme? Échale un vistazo a mi Blog http://empoblog.blogspot.com
Ahí lo veo funcionando en el el elemento HTML2 de tu sidebar ¿Qué problema notas?
Hola JMiur!! Tengo un pequeño problema con esto te cuento que lo instale personalize y todo de maravillas, pero al lado del nombre del autor aparece un PUNTO y ese punto para empezar no me gusta para nada :S , lo intente cambiar por una imagen y no pude :-I , lo intente acomodar y no puede :( , lo intente borrar y no pude :((...
Hay alguna solucion para poderlo borrar o ponerle una imagen para quede mejor???
El resultado lo podras ver en mi blog de pruebas.
Saludos!!!
No estoy seguro si con eso del PUNTO, te refieres al bullet de la lista que se ve de modo parcial, cortada.
Para eliminar el bullet, agrega esto:
#ultimosComentarios li {
...............
list-style-type:none;
}
Gracias JMiur salio todo mas que bien!!!:D Ya lo e puesto en mi blog...
Saludos!!!
Hola! Jmiur! nuevamente tengo otro problem :(
Te cuento que pude hacer todo a mi gusto se ve todo muy bien sin drama en todos los navegadores menos en IE cuando pongo vista de compativilidad el nombre del autor toma un enorme margen al costado. Me ayudarias a solucionar eso haci borro ese molesto margen?
Supongo que deberias agregarle eso:
#ultimosComentarios li {
........
list-style-position:outside;
}
Gracias! ya esta todo en orden. :D
Suerte!!!
Hola!! Jmiur
Mira talvez ya lo allas visto antes que yo jeje es un script muy similar al de esta entrada, nada mas que este es sobre la imagenes de picasa porque muestra las ultimas imagenes subidas, te cuento que lo estube probando y anda estupendo, pero no logro controlar la cantidad de imagenes que se muestran, seguro tu sabras manejar ese tipo de cosas. Pero we ya que estoy te dejo el link de donde lo encontre:
http://beautifulbeta.blogspot.com/2007/04/picasa-album-widget.html
Estare atento si publicas algo de este script, espero que sea de tu interes :D
Suerte!!!
Supongo que se trata de este widget.
Hola, JMiur.
Sin ánimo de desentonar, soy de los que usan el título de la entrada comentada. El script lo toma de la URL, recortándola. Eso hace que no aparezca el título actual (si uno lo cambió, como suele pasarme) y que no aparezcan vocales acentuadas y otros signos no permitidos en URLs. ¿Habría modo de modificar el script para que los títulos los tome del feed?
Gracias de antemano.
No estoy muy seguro si a lo que te refieres es a leer el título de la entrada donde fue hecho ese comentario.
Si es así, hasta donde sé, es un dato que no aparece en el feed y por eso se usa ese método de tratar de reproducirlo via la URL.
Sí, sí, a eso me refería. Me parecía que debía haber una buena razón para no hacerlo así. Pensé que sería igual que con la lista de blogs o un gadget de feeds o uno de entradas más comentadas, pero veo que es distinto cuando se trata de identificar la entrada en la que se hizo un comentario. Igual, tampoco es tan grave que quede así.
Gracias de nuevo.
¿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 ...