En esta oportunidad veremos cómo modificar la forma en la que se muestra el mensaje bajo ciertas condiciones, es decir, cuando no hayan comentarios, cuando el total sea 1 sólo comentario o cuando estos sean plural.
El tutorial:
Recordemos que el código del CommentLink es el siguiente (Basado en una plantilla con los artilugios predeterminados):
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:blog.pageType != "static_page"'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a></b:if>
</b:if>
</b:if>
Si nosotros aprovechamos las condicionales de Blogger, podemos hacer que este mensaje varíe según la cantidad de comentarios que existan en la entrada.
La condicional para hacer esto requiere la cantidad de comentarios que se encuentren en una entrada, y para este fín la etiqueta <data:post.numComments/> nos servirá:
Recuerden que las condicionales de Blogger funcionan igual que las de javascript, podemos usar las etiquetas <data> y elegir un valor, que este valor se condicione de manera igual mediante el operador ==.
Sabiendo esto, podemos usar la etiqueta dentro de una condicional de esta manera:
<b:if cond='data:post.numComments == VALOR'>
</b:if>
Lo que aparezca encerrado dentro de esta condicional es lo que nosotros mostraremos, asignamos un valor que nosotros mismos añadiremos y encerraremos con el enlace:
<a class='comment-link' expr:href='data:post.addCommentUrl'>
<b:if cond='data:post.numComments == 0'>
Sin opiniones.
</b:if>
<b:if cond='data:post.numComments == 1'>
Una opinión</b:if>
</a>
Pero, ¿Qué pasa si la entrada tiene más de 0, y más de 1?
Símplemente recurriremos a <b:else /> para que la condicional actúe cuando el valor sea diferente a 0, y dentro de ésta encerraremos la que irá entre 1 e infinito. Necesitaremos alterar un poco la estructura para que la condicional no se "confunda" y no nos muestre el mensaje duplicado.
<a class='comment-link' expr:href='data:post.addCommentUrl'>
<b:if cond='data:post.numComments == 0'> <!-- Si el total de comentarios es igual a 0-->
Sin Opiniones
<b:else /> <!-- Si la condición anterior no se cumple se aplica lo siguiente -->
<b:if cond='data:post.numComments == 1'> <!-- Si el total de comentarios es 1 -->
Una opinión
<b:else/> <!-- Si la condición no se cumple y tienen 2 o más comentarios -->
<data:post.numComments/> Opiniones
</b:if>
</b:if>
</a>
Ese código debería dar un resultado como este:
Recuerda que debes encerrar el código mediante el siguiente para que el enlace aparesca únicamente en el índice del blog:
<b:if cond='data:blog.pageType == "index">
<!-- El código anterior deberá ir aquí -->
</b:if>
Nota: El código completo debería reemplazar el código por defecto de tu plantilla, si no tienes en enlace puedes pegarlo justo debajo de:
<data:post.body />
No hay comentarios:
Publicar un comentario