Nuevos operadores para expresiones en Blogger | Oloblogger Antes de entrar en materia me gustaría ser capaz de recordar para citarlos ahora, todos esos artículos comparativos entre las plataformas Bl...

23 de mayo de 2015

Nuevos operadores para expresiones en Blogger

Antes de entrar en materia me gustaría ser capaz de recordar para citarlos ahora, todos esos artículos comparativos entre las plataformas Blogger y WP cuyo argumento principal en favor de la segunda, o más bien en contra de la primera, se basaba en que Blogger estaba a punto de chapar.

Hace dos años que escribí algo sobre ello porque ya eran muy insistentes entonces, pero cosas como esta de hoy corroboran en cierta forma que no podían estar más equivocados ¿para qué seguir desarrollando e invirtiendo unos recursos humanos, tecnológicos y económicos en una plataforma que no tiene futuro? Los de Google nunca me han parecido tontos del todo, así que cada desarrollo que incorporan en Blogger creo que va alargando la fecha de jubilación de este servicio... gratuito (me gusta recordarlo).

Es posible que en ocasiones no sean muy ágiles con Blogger -según para qué cosas- pero constantes parece que sí y la novedad de estos días es que han incorporado nuevos operadores aplicables a expresiones y condiciones que harán la programación de nuestro sitio mucho más fácil y simple.

Nuevos operadores en Blogger


Blogger guarda todo el contenido de nuestros blogs bien clasificado en su base de datos, de tal manera que cuando se teclea una dirección concreta se carga el contenido propio de cada página según lo indicado en la plantilla con las etiquetas de datos de diseño, esas a las que yo siempre me refiero como etiquetas data.

Estos operadores que ahora se han ampliado, lo que nos permiten es manipular esas variables data para poder sacar alternativamente unos datos u otros, o bien hacerlo con determinado formato.

Karla nos ofreció un avance hace ya unos días incluyendo un buen puñado de ejemplos prácticos sobre su uso que recomiendo veáis, especialmente los menos avezados. Ahora un servidor hará también un repasito incluyendo no sólo los nuevos sino también los que ya existían hasta ahora.

Para más información podéis también ver estas otras entradas en la que desarrollaba el tema de las condiciones (1) (2) (3). Cuando terminéis de ver lo de hoy comprobaréis que lo que explicaba en el último enlace de los citados se simplifica bastante con los nuevos operadores.


Concatenación / Sustracción


Une conjuntos de caracteres + concatenándolos o sustrae de una cadena una parte -.

Ejemplo: Añadir a la clase "item-control" el valor de una variable data:
<span expr:class='"item-control " + data:post.adminClass'>

Cuando los valores a concatenar van entre paréntesis se suman de manera ordinaria, como números:
<div expr:style='"max-width: " + (data:width + 10) + "px;"'>

Comparación


Comparan un par de valores y comprueban si son mayores o menores y/o iguales, con idéntico resultado que en matemática ordinaria: <, >, <= y >=.

Ejemplo: Condición que se ejecutará sólo cuando el ordinal de entrada sea mayor a 3.
<b:if cond='data:postNum > 3'>


Equivalencia


Sirven para comprobar que algún dato es idéntico a otro == o que por el contrario no lo es !=.

Ejemplo: Comprobar si estamos en una página estática:
<b:if cond='data:blog.pageType == "static_page"'>

Ejemplo: Comprobar que un título no está vacío:
<b:if cond='data:title != ""'>


Operador And


Es especialmente útil para combinar condiciones. Lo que quede condicionado con este operador sólo se ejecutará si se cumplen todas las condiciones combinadas.

Sintaxis: and y también &&.

Ejemplo: El include o rutina que carga los comentarios sólo se ejecutará si simultáneamente se cumple que estamos en una entrada y además se marcó que los comentarios estaban permitidos.
<b:if cond='data:blog.pageType == "item"' and data:post.allowComments'>
<b:include name='comment_count_picker' data='post' />
</b:if>

Operador Or


Igual que el anterior pero bastaría con que se cumpliera una de las condiciones para que se ejecutara lo condicionado.

Sintaxis: or y también ||.

Ejemplo: Cargamos la imagen en cabecera si en el correspondiente gadget hemos marcado que esta salga "antes de la descripción" o "en lugar de la descripción". En todos los demás casos no saldrá.
<b:if cond='data:imagePlacement == "BEFORE_DESCRIPTION" or data:imagePlacement == "REPLACE"'>
<b:include name='image' />
</b:if>

Negación Not


Para cuando se quiere operar bajo la condición de que algo no es cierto. Evita tener que añadir un b:if vacío seguido de un b:else con lo que sí queremos que se haga en el caso de que no se cumpla la condición del if.

Sintaxis: not y también !.

Ejemplo: La condición se cumple siempre que no estemos en una página estática:
<b:if cond='not data:blog.pageType == "static_page"'>
<b:include name='comments_byline' />
</b:if>

Selector ternario


Este operador incluye dos opciones que se ejecutarán según resulte el valor de la evaluación de la condición, una para "verdad" y otra para "falso".

Sintaxis: condición ? resultado_true : resultado_false

Ejemplo: Aplicar la clase "comments" o "no-comments" a un div, según estén permitidos los comentarios o no, respectivamente.
<div expr:class='data:post.allowComments ? "comments" : "no-comments"'>
</div>

Pertenencia


Este operador comprueba si un valor concreto forma parte a un conjunto de valores.

Sintaxis 1: {"valor1","valor2"} contains condición
Sintaxis 2: condición in ["valor1","valor2"]

Ejemplo sintaxis 1: Comprobar si el tipo de página es una entrada o una página estática.
<b:if cond='{"item", "static_page"} contains data:blog.pageType’>
<p>Esto es una entrada o una página estática</p>
</div>

Ejemplo con sintaxis 2.
<b:if cond='data:blog.pageType in ["item", "static_page"]'>
<p>Esto es una entrada o una página estática</p>
</div>

elseif. Anidar condiciones


Las etiquetas para condiciones no son exactamente un operador, pero la incorporación a los códigos de Blogger de b:elseif también nos va a hacer la vida más fácil.

Ejemplo:
<b:if cond='condition'>
Lo que se ejecutará si se cumple la primera condición
 <b:elseif cond='another condition'>
 Lo que se ejecutará si no se ha cumplido la primera condición pero sí esta
 <b:else/>
 Lo que se ejecutará si no se ha cumplido ninguna de las anterioress
</b:if>

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

8 comentarios :

  1. Que bueno que las nuevas condicionales en blogger del 2015 hagan las cosas mas faciles. Oloman hace algunos dias te envie un correo haber si me lo respondes por favor.

    ResponderEliminar
  2. Amigo Oloman, como siempre yo cuando blogger me supera recurro a ti... he intentado de mil maneras cambiar la imagen de la cabecera de esta plantilla y no me ha sido posible pues no encuentro el jpg/gif/png dentro de la plantilla que lo identifique de la manera tradicional... me puedes dar una idea por donde empezar? http://pruebatriolospanchos.blogspot.com.ar/

    ResponderEliminar
  3. Oloman, ya lo resolvi... jijiji... era mas facil de lo que creia, pero no encontraba la linea que lo contenia... cualquier traspie vuelvo a ver si me ayudas...Gracias

    ResponderEliminar
    Respuestas
    1. Sois capaces de más de lo que os creéis. Sólo es cuestión de constancia ;)

      Eliminar
  4. En increible el rechazo de tantos a blogger. A nosotros siempre nos funciona, no cae el servidor, funciona que te cagas y sobre todo es gratis, cosas que no ocurren en WP.

    Gran artículo, Oloman!!!

    Abrazos.

    ResponderEliminar
    Respuestas
    1. Para mí más que un rechazo por una plataforma, es interés por que siga adelante la otro. Por puro interés claro.

      Eliminar
  5. Antonio Ruiz tan enamorado de Blogger como yo de los chocolates y el yogurt...También de Blogger ;)

    Oloman cada vez explicas mejor. Tu entrada complementa muy bien a la que te agradezco que hayas referido ;)

    Estoy pensando: ¿Has comprobado si Blogger procesa bien las URLs con caracteres que no son en inglés como vocales con tildes o la virgulilla de la ñ, u otros signos ortográficos?

    Pasa algo. Si recuerdas, en las entradas individuales, la URL, no aparece con signos ortográficos, mientras que las URls de páginas de etiqueta sí, cuando has utilizado una etiqueta que tenga un signo ortográfico.

    ResponderEliminar
    Respuestas
    1. En las URL "de todas partes" creo que no se pueden usar caracteres distintos de guiones y poco más. Lo de las páginas de etiquetas pienso que es distinto porque realmente el final (el nombre de la etiqueta) pienso que funciona más bien como un parámetro.

      Eliminar