JMiur [E]

La idea de mostrar con cierto detalle el código que utiliza Blogger para los comentarios era poder internarnos en una de las secciones de la plantilla a la que no le damos mucha importancia y que es, sin duda, una de las más utilizadas de cualquier blog.

Esta serie de hacks tendrá tres finalidades:
  1. lograr que los comentarios se destaquen unos de otros modificando los colores del fondo
  2. numerarlos
  3. agregar alguna clase de ícono o establecer alguna propiedad que permita diferenciar los comentarios hechos por nosotros de los hechos por un visitante y, eventualmente, identificarlos individualmente
Todo esto, podemos hacerlo con cierta sencillez y sin agregar scripts estrafalarios.

Por ejemplo, para conseguir que los comentarios posean colores de fondo alternados, debemos numerarlos, de esta manera, los pares tendrán una propiedad y los impares otra. Empecemos por ahí.

El código que necesitamos modificar es el contenido en el bloque:
<b:includable id='comments' var='post'>
ver detalles
</b:includable>
Estas son las secciones del código que debemos manipular:
<b:includable id='comments' var='post'>

.......

<dl id='comments-block'>

<!-- ponemos el contador a cero -->
<script type='text/javascript'>var contadorComentarios=0;</script>

<b:loop values='data:post.comments' var='comment'>

<!-- agregamos un bloque para darle un nombre único a cada comentario -->
<div class='' expr:id='data:comment.id'>

<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
<a expr:name='"comment-" + data:comment.id'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'>
<data:comment.author/>
</a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/> <!-- el texto "dijo..." -->

<!-- el código del contador -->
<span class='comentacontador'>
<a expr:href='"#comment-" + data:comment.id' title='Vinculo al comentario'>
<script type='text/javascript'>
contadorComentarios=contadorComentarios+1;
document.write(contadorComentarios)
</script>
</a>
</span>

</dt>

<dd class='comment-body'>
.......
</dd>

<!-- establecemos la clase del comentario -->
<script type='text/javascript'>
ContarC('<data:comment.id/>')
</script>

</div>

</b:loop>
</dl>

.......

</div>
</b:includable>
Nada del otro mundo, todo lo que hacemos es "contar" los comentarios a medida que Blogger los va mostrando, guardamos ese dato y lo mostramos. Ese contador es el que usaremos para cambiar el color de fondo de cada uno.

Ahora, agregaremos las propiedades de estilo antes de la etiqueta </head>. Estas, podrán ser muchas y muy variadas, dependiendo de cada plantilla. En mi caso, el código es el siguiente:
<style type='text/css'>
/* numerar los comentarios */
.comentacontador {
float: right;
display: block;
width: 50px;
margin-top: -30px; /* la posición de los números */
text-align: right; /* el número a la derecha */
/* el tipo y tamaño de la fuente */
font-family: 'Century Gothic','Lucida Grande',Arial,Helvetica,Sans-Serif;
font-size: 36px;
font-weight: normal;
}

/* como son enlaces, forzamos las propiedades de color */
.comentacontador a:link, .comentacontador a:visited {color: #445566 !important;}
.comentacontador a:hover, .comentacontador a:active {color: #FF9933 !important;}

/* propiedades para diferenciar pares e impares */
.comentarioPar { /* los comentarios pares */
margin: 10px 0px; /* separación entre comentarios */
padding: 5px 20px 0px; /* margenes internos */
/* el color de fondo, los bordes. etc */
background-color: #1E252D;
border-bottom: 1px solid #445566;
border-top: 1px solid #445566;
}

.comentarioImpar { /* los comentarios impares */
margin: 10px 0px; /* separación entre comentarios */
padding: 5px 20px 0px; /* margenes internos */
/* el color de fondo, los bordes. etc */
background-color: #2E353D;
border-bottom: 1px solid #445566;
border-top: 1px solid #445566;
}
</style>
Lo que nos falta es agregar el script que sólo establecerá la clase (las propiedades) de cada comentario según sea par o impar. La agregamos inmediatamente después del estilo:
<script type='text/javascript'>
function ContarC(cual) {
var resto;
resto = contadorComentarios % 2;
if (resto == 0) {
document.getElementById(cual).className='comentarioPar';
} else {
document.getElementById(cual).className='comentarioImpar';
}
}
</script>
El resultado, puede verse en el blog, abriendo cualquier post que contenga comentarios.

246 comentarios:

primera página12última página
JMiur hace 14 años  

Las propiedades son esas, lo que no sé es qué quieres enmarcar, a que clase o id le estás aplicando esa propiedad. Muéstrame un ejemplo que pueda ver online.

Responder
pvillegasy hace 14 años  

Hola Jmiur

Cordial slaudo, Estoy tratando de implmentar lo dicho en este post sobre los comentarios y me sale el siguiente eror."No se ha podido analizar su plantilla, porque no está bien formada. Asegúrese de que todos los elementos XML se han cerrado correctamente. Mensaje de error de XML: The element type "b:loop" must be terminated by the matching end-tag",
Aunque comprendo lo que hace el código...me queda dificl donde esta el error, ¿me puedes dar algun indicio?

Muchas gracias

Responder
JMiur hace 14 años  

Seguramente, hay una etiqueta de cierre mal ubicada pero, n opuedo decirte cuál porque eso, es algo que sólo se ven en la plantilla misma.

Responder
pvillegasy hace 14 años  

Hola Jmiur...
Finalmente logré hacer por lo menos diferenciar los comentarios, pero como tuve inconvenientes mezclé un articulo del Potro y tu articulo, claro no pude incarclar lo colores pero si numerarlos y enmarcarlos entre lineas...y creo que se ve bien.

voy para tus otros dos artículos sobre este tema. Permiteme que te pregunte ¿como puedo hacer para hacer que el texto del comentario salga debajo del abatar.

si puedes le hechas un vistazo a mi blog http://aguaysig.blogspot.com
Muchas gracias, gracias pot tu blog

Responder
JMiur hace 14 años  

Para que salgan debajo, debes buscar eto y agregarle:

.comment-body {
.......
clear:both;
}

Si quieres que no haya tanto espacio, en esa misma regla, modifica el padding por padding:0 10px;

Responder
Pato Aliaga hace 13 años  

Demasiado poderoso tratare de aplicarlos
gran blog !

Responder
pvillegasy hace 13 años  

Hola Jmiur

Muchos saludos
Tengo una inquietud con respecto a los comentarios. ¿como puedo hacer para que no me queden tan retidado del margen izquierdo?, quisiera que me quedaran alineados igual que el contenido del post que está encima de ellos. No se que propiedad modificar....

Gracias

Responder
JMiur hace 13 años  

Muestrame un ejemplo dode peuda verse eso.

Responder
pvillegasy hace 13 años  

Hola Jmiur

en el siguiente articulo puedes ver la sangría de que tienen los comentarios:
http://aguaysig.blogspot.com/2011/03/analisis-geoestadistico-con-arcgis.html

Responder
JMiur hace 13 años  

PAra quitar ese margen, agrega lo siguiente al CSS:

#comments dl {margin: 0 !important;}

Responder
pvillegasy hace 13 años  

Hola Jmiur

Eres lo maximo, mi blog se va viendo mejor cada día gracias a ti.

Gracias

Responder
Cêz hace 13 años  

Hola JMiur, siguiendo tu consejo anterior para lograr algo parecido al diseño de tus comentarios, estaba leyendo para conseguir numerar para intercalar fondos de diferentes colores, manipulé y pegué los codigos de los comentarios, guarde los cambios, mis comentarios estan igual que antes, sin sufrir un cambio, me preguntaba que si tengo algo que eliminar algo de mi plantilla Miníma? y por cierto, los comentarios de los anónmimos no tiene ningún avatar, a qué se debe eso? Alguna sugerencia? gracias!

Responder
JMiur hace 13 años  

No sé donde estáponiendo todo eso. En que blog. Dónde está ejemplo.

Responder
Cêz hace 13 años  

Perdona, creí que sería muy repetitivo decir el nombre mi blog, jejeje, es:
www.asicious.blogspot.com y para ilustrar la misteriosa invisibilidad del avatar de Anónimo te envio su url aqui
Gracias y tengas un buen día

Responder
JMiur hace 13 años  

Preguntaba porque ese es el que ví y aññi no hay ninguno de estos códigos colocados.

Responder
Cêz hace 13 años  

Perdona de nuevo, caí en cuenta que había borrado los cambios sin querer, ya coloqué los mismos códigos en los lugares según entendí y como decia anteriormente, no me ha surtido algún cambio en la presentación de mis comentarios ni de los Anónimos de mi blog asicious Debo hacer algo mal y no logro verlo

Responder
JMiur hace 13 años  

Veo que está colocada la función, veo que está colocado el CSS pero, en ninguna aprte se ve que se ejecute esa función, te falta modificar el código de los comentarios.

Responder
Cêz hace 13 años  

JMiur, no quisiera fastidiarte con lo mismo porque sinceramente soy muy novato en eso de rediseñar mi Mínima, volvi a leer tu entrada en busca acerca del código de comentarios porque no sé que es precisamente lo que debo modificar, no sé si es
#comments {
...
#comments h4 {
...
#comments-block {
....
y no ha aparecido el avatar el Anónimo.

Muchas gracias :$

Responder
JMiur hace 13 años  

Como te dije; esta explciación se refiere al viejo sistema y por lo tanto, deben buscarse las diferencias en la nueva versión.

Lo que no has agreagdo es l oque indca el post a partir de esta parte: Estas son las secciones del código que debemos manipular:

No es el CSS sino que falta agregar y ejecutar el script que es l oindicado en esa parte de la entrada.

Responder
Cêz hace 13 años  

Jejeje, eso fue lo que hice, agregué los códigos de color beige en mi plantilla con los artilugios abiertos(comentario 19) y anoche volvi a buscar alguna pista para modificar el codigo de comentarios que me sugeriste (comentario 20 y 22), estoy consciente de la versión pero mi cabeza no da, sinceramente estoy fustrado (no me habia pasado eso antes) porque no entiendo que es lo que me esta fallando (creo que soy mas de ejemplos que teoria, jejeje) y como llevo tantos comentarios, no suelo decir eso pero sera mejor rendirme, he perdido bastante horas perdidas.

Agradezco mucho su paciencia.

Responder
JMiur hace 13 años  

Y yo vuelvo a decir que, ninguno de esos códigos está en el código fuente del blog que muestras como referencia por l otanto, nada se ejecuta.

Responder
Puzzle hace 13 años  

Pufff, segundo intento fallido Y jamás me había pasado! que fuerte!! Cada vez se pone mas difícil esto eehhh

Me tira un error; The element type "b:loop" must be terminated by the matching end-tag ""

Y aunque luego trate de solucionarlo y "cerrar" esto que me decía, luego no había ningún cambio =S a no ser que solo se vea en los comentarios nuevos!

Básicamente lo que quiero "principalmente" es dividir (separar) un comentario de otro.. y para ello; darle color diferente a par y impar, separar el bloque de comentario y tal me servia perfectamente..

Te dejo la dirección con un par de comentarios así ves lo que digo:

http://forex-files.blogspot.com/2011/06/eurgbp-analisis-tecnico-080611.html


Un saludo.

Responder
JMiur hace 13 años  

No es algo que pueda verse online. El error que muestra Blogger indica que hay una etiqueta mal cerrada y eso puede ser provocado por cualquier cosa, una comilla errónea, etc.

Responder
Unknown hace 13 años  

JMiur, en esta entrada se pueden apreciar bien los comentarios de mi blog.

Ahora te consulto, ya instalé todo en mi plantilla y le di un poco de personalización, pero hay algunas cosas que me gustaría modificar:

1. Que los avatares sean más grandes, por lo menos 10px
2. Que el margen se quede así como en esta imagen que hice con paint.
3. Que la fecha esté adentro de los comentarios (como en la imagen anteriormente linkeada).
4. Menos margen de los avatares hacia arriba e izquierda.

¡Mil gracias JMiur! ¡Sos gigante!

Responder
JMiur hace 13 años  

El tamaño de los avatares pede ser cambiado en estas dos reglas:

#comments-block .avatar-image-container {
.......
height: VALORpx;
width: VALORpx;
}
#comments-block .avatar-image-container {
.......
height: VALORpx;
width: VALORpx;
}

sólo debe tenerse en cuenta que ´la imagen que envia Blogger es de 45x45 así que si se agranda, se pixelará.

La imagen que mostraría la forma del margen es inaccesible así que no sé cuál es la idea.

La fecha se ve afuera porque la etiqueta que la contiene, cuya clase es comment-footer, esta fuera del DIV comentarioPar/comentarioImpar así que, deberías buscar esa etiqueta y ponerla dentro.

Los márgenes del avatar tien en muchas reglas distintas. Para empezar, yo agregaría:

#comments .avatar-comment-indent .comment-author {
margin-left: 0;
padding-left: 0;
}

y

#comments-block .avatar-image-container {margin-top:0;}

Responder
Unknown hace 13 años  

Muuuchisimas gracias JMiur! Pero disculpame que te robe un poco mas de tu tiempo... La imagen si es accesible, solo tenes que apretar F5 para poder verla (no tengo idea de porque será)

http://k13.kn3.net/032FC7684.png

Pero ya no importa tanto la imagen, ya que decidí hacer que el nombre esté al lado del avatar y el texto abajo, así como en tu blog. ¿Me podrías decir como lo hago?

Y ahora te tengo un par de consultas más... No me mates
1. ¿Cómo pongo una imagen diferente entra los anonimos y los Nombre/URL?
2. ¿Cómo cambio el tamaño de fuente de los comentarios?
3. Si te fijás, la fecha se vuelve molestosa, me gustaría fijarla bien abajo a la derecha, y hacerla más pequeña. ¿Cómo hago esto?
4. Y las más importante, como hago lo que te dije anteriormente, lo de colocar el nombre al lado del avatar, y el texto abajo, así como está en tu blog.

¡Mil gracias! Sos un ídolo, para responder todo lo que te preguntan y encima seguir haciendo post regularmente... Saludos desde Paraguay ;)

Responder
JMiur hace 13 años  

La imagen devuelve 403 - Forbidden. Puede ser que ea privada. Lo desconozco.

Entiendo que para Blogger, Anonimos y con URL personal son exactamente lo mismo ya que ninguno de ellos posee algún tipo de identificación reconocible; los únicos que pueden ser identificados son los que acceden via Blogger o via OpenId

La fuente con el nombre del autor se controla con:
.comment-author {}
la del texto con:
.comment-body {}
la de la fecha, con:
comment-footer {}

La fecha se controla con:
comment-footer {}
allí puedes ponerla a la derecha con text-align:right;

Para mover el nombre con facilidad y posicionarlo, debes quitar el código de donde está ahora y para empezar, colocarlo fuera del DIV que contiene la imagen, deben ser dos DIVs distintos. Ese segundo, el del texto, debe tener alguna clase a la que leugo se le puedan poner propiedades; caso contrario, es casi imposible alinear ambas cosas.

Responder
Puzzle hace 13 años  

Solucionado mi problem!! Al fin, dejo a un lado lo de los comentarios.. Ya LUUUUUUEGO veo como ponerle las caritas (avatares) pero por ahora es suficiente! jejeje

Por cierto me pregunto a donde llevan esos enlaces de los numeros! Es decir cuando pincho el numero "del contador de los comentarios" debería de llevar a donde? Es una pregunta tonta pero bueno.. me parece curioso!!

MUCHAS GRACIAS MAQUINA!!!
salvándome nuevamente!

Responder
JMiur hace 13 años  

Los enlaces te llevan a ese comentario en particular; posicionan la pa´gina en ese lugar.

Responder
Puzzle hace 13 años  

Uhmmm cierto, pues me he dado cuenta es acá! Porque en el mio (después de la modificación) al pinchar, me abre el blog como si fuera el inicio pero con esa url!! es decir con el #comment-5636356.... tengo entendido por otra de tus entradas que la almohadilla esta "#" hace relación a la "misma" pagina y tal.. Y he revisado un poco pero no me explico el porque de esto!!
Por eso preguntaba, aunque "aquí" si que funciona >.<

Responder
JMiur hace 13 años  

Un anclaje, que es eso que se adosa a la URL, posiciona la página en cierto lugar. Se indica con la etiqueta A. Si n oexiste, simplemente se meustra la dirección sin posicionarse. En tu plantilla debe estar el anclaje; algo similar a esto.

<a expr:name='&quot;comment-&quot; + data:comment.id'/>

Responder
Puzzle hace 13 años  

Esoo "anclaje".. Pues sip.. Yo lo tengo puesto así:
<*a expr:href='"#comment-" + data:comment.id' title='Vinculo al comentario'>

En vez de name; href. porque si le doy name pierde su condición de "link".
del resto pues solo tengo lo de title adicionalmente pero esto es para que diga "vinculo al comentario" al pasar por encima del link..
No tengo idea de que pueda pasar, algo esta fallando indudablemente.. jeje..

Responder
JMiur hace 13 años  

Son dos cosas distintas. Un enlace es un texto o imagen sobre la que puedes hacer click:

<a expr:href='&quot;#comment-&quot; + data:comment.id' title='Vinculo al comentario'>
texto o imagen
</a>

Un anclaje sólo es un indicador. No es visible; sólo identifica un nombre que luego puede ser utilizado para apuntar una URL:

<a expr:name='&quot;comment-&quot; + data:comment.id'/>

Uno, no reemplaza al otro, son dos cosas distintas.

Responder
Unknown hace 13 años  

¡Muchísimas gracias JMiur!, ya casi todo está resuelto.

Digo casi porque hay dos puntos todavía sin resolver...
1. No entendí bien tu explicación de como poner los avatares encima del cuerpo del comentario, y al lado del título, como en tu blog.
2. Me sucede lo mismo que a Lui'S Y, los links a los comentarios me llevan a la entrada de nuevo, como si fueran links a la entrada. Aunque si agrega '#númerodecomentario' no direcciona al comentario, como sí sucede en tu blog.

* Y una yapa:
¿El tema de diferenciar los Anónimos de los Nombre/URL no se podría hacer con un condicional?

Si comentador=Anónimo
si se cumple mostrar imagen para anonimos
si no se cumple mostrar otra imagen.

Te digo esto porque vi que se puede hacer, por ejemplo en el blog de Gem@. No quise pedirle ayuda ya que tal vez se confunda lo suyo con lo tuyo y termine siendo un desastre.

Bueno, un millón de gracias JMiur, ¡sos un grande!

Responder
JMiur hace 13 años  

Es probable que la fecha del comentario que es el enlace que producirá eso, diga algo así:

<a expr:href='data:comment.url' title='comment permalink'>

y debería decir algo así:

<a expr:href='&quot;#comment-&quot; + data:comment.id' title='comment permalink'>

La primera, te llevará a una URL de este tipo con lo cual, se recargará la página:
http://miblog.blogspot.com/2011/07/ejemplo.html?showComment=xxxxxxxxxxxxxxxxxxxxxx
la segunda, a este tipo:
http://miblog.blogspot.com/2011/07/ejemplo.html#comment-xxxxxxxxxxxxxxxxxxxxxx
que es el anclaje que debe estar faltando debajo de esto:

<b:loop values='data:post.comments' var='comment'>
<div class='' expr:id='data:comment.id'>

iría esto:

<a expr:name='"comment-" + data:comment.id'/>

Mucho cuidado con lo aquí mostrado porque estoy tratando de adivinar qué dice la plantilla; por eso no puedo darte mucho detalle de cómo debería separarse el avatar del texto.

Responder
Paco hace 13 años  

Hola JMiur!
Tengo un pequeño problema, me aparece bien la numeración y funciona correctamente pero las propiedades del estilo no me deja cambiarlas, es como si no estuvieran y no puedo personalizarlo...
También intenté alinear el nombre con el avatar poniendo propiedades de padding-left y padding-top pero tampoco hace nada.
Llevo días probando sin poder solucionarlo, cualquier ayuda se agradece y mucho. Gracias!

Responder
JMiur hace 13 años  

Si lo que quieres cambiar son las propiedades del enlace, debes forzar a algunas porque en tu plantilla, ya están definidos; eso se hace agregándoles la plabra !important; en tu caso, seríaalgo así:

.num_comments {
color: #0101DF !important;
float: right;
font-size: 24px;
text-decoration: none !important;
}

Responder
Paco hace 13 años  

Funcionó genial! Muchas gracias JMiur!! Una última cosa, como puedo alinear el nombre con el avatar? probé varias cosas pero nada... Gracias!

Un saludo.

Responder
JMiur hace 13 años  

Para eso, te convendría ver esta entrada a ver si esa solución te resulta útil.

Responder
Paco hace 13 años  

Muchas gracias por todo JMiur!!
Un abrazo

Responder
JMiur hace 13 años  

Saludos, Paco

Responder
One's hace 13 años  

Hola JMiur. Te queria preguntar si aplicar esto en los nuevos blogg funciona, ya que ingrese todo los codigos mensionados y los comentarios se ven como si no hubiera agregado nada .

Muchas Gracias.

Saludos.

Responder
JMiur hace 13 años  

Depende de lo que llames "nuevo blog". SI se trata de los comentarios anidados, no. Eso es diferente. Si se trata de las nuevas plantillas, allí funciona del mismo modo.

One's hace 13 años  

Bueno me refiero si en estos momentos, lo que planteas en este post para que los comentarios se dividan por color y los enumere Funcionan. Ya que cree un Blog. Lei este Post muchisimas veces para ver si erre en algo, hice tal cual lo demostras y los post siguen como si no hubiera colocado nada. Entonces tal vez se me ocurrio que ya no funciona mas esos codigos.

Gracias por Responder

JMiur hace 13 años  

Si es un nuevo blog, seguramnte, tiene activado el nuevo sistema de comentarios así que debes usar otro criterio.
http://vagabundia.blogspot.com/2012/01/comentarios-anidados-los-estilos-paso.html
http://vagabundia.blogspot.com/2012/01/comentarios-anidados-los-estilos-paso_19.html
http://vagabundia.blogspot.com/2012/01/alternativas-para-numerar-los.html

Amiitha Aoi hace 13 años  

Menos mal que leí este comentario *.*
ya me estaban saliendo canas verdes de tanto intentar colocar estos códigos con el nuevo sistema de comentarios activado

pd: comienzo a entender porqué odian tanto que blogger haga estas "mejoras" ¬¬

Responder
primera página12última página

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

 
CERRAR