Anteriormente ya vimos una pequeña explicación sobre qué era esto de las condiciones y sobre cómo usarlas, pero como desde entonces ha llovido mucho, observo que es una pregunta habitual y sobre todo, entonces fui algo más desordenado, pues allá vamos.
Las páginas Blogger (esto no se aplica en otras plataformas) también manejan las direcciones de las páginas y sus distintos tipos con etiquetas data. Este sería el catálogo:
- data:blog.homepageUrl ► Dirección de la página Inicio
Ejemplo: http://www.oloblogger.com - data:blog.pageType ► Tipo de página Puede tener los siguientes valores:
- index → Home, páginas de etiquetas y recientes/antiguas
Ejemplo: http://www.oloblogger.com/search/label/BPT - archive → Navegación a través del gadget Archivo
Ejemplo: http://www.oloblogger.com/search?updated-min=2011-01-01T00... - static_page → Página estática
Ejemplo: http://www.oloblogger.com/p/contacto.html - item → Una entrada individual
Ejemplo: http://www.oloblogger.com/2010/02/otra-pantalla-de-presentacion-facil.html
Otra variable que nos va a hacer falta para montar las condiciones es data:post.url, que nos remite a la dirección de la página dónde estamos actualmente.
Bien, ya tenemos todo lo necesario para empezar a condicionar cosas. Lo importante es entender la estructura porque a medida que avancemos la cosa se complica. Blogger no permite poner cosas del tipo "Si es este tipo de página y no este", ni ninguna otra combinación tipo AND/OR, así que hay que ir usando nuestra propia lógica para anidara las condiciones.
Una condición básica sería de la forma:
<b:if cond='data:post.dateHeader'>
Ejecuta lo que hay entre los dos if si la fecha del post existe
</b:if>
Ejecuta lo que hay entre los dos if si la fecha del post existe
</b:if>
Pero para lo que nos ocupa -discriminar el tipo de página- necesitaremos hacer una comparación para ver si se cumple la igualdad y no sólo comprobar si un valor existe o no:
<b:if cond='data:post.dateHeader == "17/02/2010"'>
Ejecuta lo que hay aquí si la fecha del post es igual a 17/02/2010.
</b:if>
Ejecuta lo que hay aquí si la fecha del post es igual a 17/02/2010.
</b:if>
Hay dos tipos de operadores para comparar, == cuyo significado es evidente y !=, que quiere decir "no es igual". Por causa de que Blogger nos exige una redacción de código muy estricta, los valores a comparar y el operador deben ir entre comillas simples (') y si uno de los dos valores no es una etiqueta data sino una cadena de caracteres normal (caso de una fecha, caso de una dirección), ese valor literal debe ser escrito entre " en sustitución de lo que normalmente serían comillas dobles.
Con todo esto ya podemos discriminar las cosas que sí queremos que se vean sólo en el Home y no en otras páginas:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
Ejecuta lo que hay aquí si la dirección de la página en la que estamos coincide con la dirección pricipal del blog.
</b:if>
Ejecuta lo que hay aquí si la dirección de la página en la que estamos coincide con la dirección pricipal del blog.
</b:if>
Por el contrario si queremos que algo se ejecute en todos los tipos de página excepto en la de inicio, tendríamos que usar !=:
<b:if cond='data:blog.url != data:blog.homepageUrl'>
Ejecuta lo que hay aquí sólo cuando la dirección de la página en la que estamos NO es la dirección pricipal del blog.
</b:if>
Ejecuta lo que hay aquí sólo cuando la dirección de la página en la que estamos NO es la dirección pricipal del blog.
</b:if>
A partir de aquí obviaré que todas las expresiones con == tienen su contraria con != para no ser demasiado exhaustivo.
Para distinguir una entrada en concreto usaríamos este mismo tipo de expresión:
<b:if cond='data:blog.url == "http://www.oloblogger.com/2010/02/codificacion-facil.html"'>
Ejecuta lo que hay aquí únicamente cuando la dirección de la página coincide con la expresada a la derecha.
</b:if>
Ejecuta lo que hay aquí únicamente cuando la dirección de la página coincide con la expresada a la derecha.
</b:if>
Seguimos con los casos fáciles. Ver algo sólo cuando estamos en una entrada individual cualquiera.
<b:if cond='data:blog.pageType == "item"'>
Ejecuta lo que hay aquí únicamente cuando la dirección de la página coincide con la de una entrada.
</b:if>
Ejecuta lo que hay aquí únicamente cuando la dirección de la página coincide con la de una entrada.
</b:if>
Ver algo sólo cuando estamos en una página correspondiente a un elemento del gadget Archivo.
<b:if cond='data:blog.pageType == "archive"'>
Ejecuta lo que hay aquí si hemos accedido al sistema de navegación desde el Archivo.
</b:if>
Ejecuta lo que hay aquí si hemos accedido al sistema de navegación desde el Archivo.
</b:if>
Con las páginas estáticas lo más habitual es que queramos ocultar algo, así que en este caso el ejemplo va en negativo, aunque obviamente podría hacerse a la inversa.
<b:if cond='data:blog.pageType != "static_page"'>
Ejecuta lo que hay aquí siempre que NO estemos en una página estática.
</b:if>
Ejecuta lo que hay aquí siempre que NO estemos en una página estática.
</b:if>
Ver algo en Inicio, páginas de etiquetas y páginas recientes/antiguas. Recordamos que estas tres se agrupan en el tipo Index.
<b:if cond='data:blog.pageType == "index"'>
Ejecuta lo que hay aquí cuando la dirección de la página corresponde al Home o a una página de navegación.
</b:if>
Ejecuta lo que hay aquí cuando la dirección de la página corresponde al Home o a una página de navegación.
</b:if>

















