No es lo mismo en absoluto ya que, cuando se condiciona usando las etiquetas propias de Blogger, la página web resultante se crea en función de esas condiciones, si por ejemplo, decidimos que tal parte no forme parte de ella, el código fuente resultante, eso que muestra el navegador, no lo incluirá. Por el contrario, usando JavaScript, sólo podemos "ocultar" cosas pero eso que ocultamos, será parte de la página y se ejecutará aunque no lo veamos.
Partiendo de la idea de colocar una imagen asociada a una etiqueta en la sidebar, Adrián J. Messina preguntaba si era posible que, en lugar de mostrar una imagen, lo que se condicionara fuera un widget o gadget.
Como para hacer eso necesitamos conocer la etiqueta de esa entrada y este dato sólo es accesible dentro del LOOP que muestra los posts, no queda otro remedio que usar JavaScript lo que implica que sólo podremos mostrarlo u ocultarlo pero siempre estará allí así que su contenido será cargado por lo que es aconsejable que sean cosas relativamente livianas.
Hacer esto implica varios pasos. Para empezar, vamos a guardar en alguna variable, el dato que necesitamos; hay que ir a la plantilla y buscar:
<b:includable id='post' var='post'>
<b:loop values='data:post.labels' var='label'> <a expr:href='data:label.url' rel='tag'><data:label.name/></a> <b:if cond='data:label.isLast != "true"'>,</b:if> </b:loop>
<b:loop values='data:post.labels' var='label'>
<script>var etiquetaPOST='<data:label.name/>';</script>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
<b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
Ahora, necesitamos agregar lo widgtes, uno, dos, los que queramos. Lo hacemos como lo hacemos siempre y luego, los buscamos; cualquiera sea siempre tendrá un ID que los identifica:
<b:widget id='XXXXX' locked='false' title='XXXXXXXX' type='XXXX'> ....... </b:widget>
<style> #HTML7 {display:none;} #LinkList3 {display:none;} </style>
<b:widget id='HTML7' locked='false' title='XXXXXXXX' type='HTML'> <b:includable id='main'> <script> //<![CDATA[ if(etiquetaPOST=="fotos") { document.getElementById("HTML7").style.display = "block"; } //]]> </script> ....... </b:includable> </b:widget>
<script> etiquetaPOST='<data:label.name/>'; if(etiquetaPOST==#39;Fotos#39;) { flagFotos = 1; } else if (etiquetaPOST==#39;Videos#39;) { flagVideos = 1; } </script>
if(flagFotos==1) { document.getElementById("HTML7").style.display = "block"; }
Claro, todo se resolvería si Blogger nos permitiera acceder a ese dato desde cualquier parte de la plantilla pero, eso es pedirle peras al olmo.
16 comentarios:
¡Vaya! ¡Si sabía que ibas a nombrar me ponía el traje y corbata!
Un verdadero honor.
Me ha resultado tremendamente útil y pude escribir el script para que asocie los widget según las etiquetas que tengo en el sitio y me funcionó sin problemas. Lo que me sorprendió es que pude hacerlo (¿Estaré entiendo un poco de esto?) con la ayuda que me habías proporcionado en aquel comentario.
Es bueno que hayas compartido esta entrada leí en muchos foros blogger que necesitaban este tipo de ayuda, como siempre no podía ser en otro lugar que en Vagabundia.
Gracias totales, un abrazo.
Voy a hacer una excepción y le responderé aunque no esté adecuadamente vestido :-D
No, me sorprende que lo hayas conseguido con sólo alguna guía básica. Eso de "ir entendiendo" es tal cual, a uno se le van aclarando conceptos que, en realidad, no son tan complicados como aparentan y una vez que se cruza la línea, ya no hay retorno :-D
Es tu entusiasmo que provoca entusiasmo y nos vamos animando.
Es como cuando nos soltaban por primera vez para pedalear en la bici sin las rueditas. Nuevamente, gracias y un honor.
Gracias a ti, Adrian :D
Hola Jmiur, perdón por el Off-topic, pero hace unos días había tenido mi plantilla bien sin ningún problema,pero desde ayer y ahora, cada vez que quiero editar algo de la plantilla y guardar el cambio e incluso cambiarla por otra me lanza el siguiente error:
Imagen: https://lh3.googleusercontent.com/-mK35GLakDng/TmvZntMV1CI/AAAAAAAADBM/7gyyiliN1Uk/error.jpg
Había tenido esa plantilla desde hace meses y hasta ahora me aparecen una serie de errores que jamas me habían aparecido, he intentado hacer todo pero sin ningún resultado, por eso recurro a ti, el blog es www.juegosfb.org.
Espero tu ayuda, saludos y de antemano gracias!
No sabría decirte. El blog parece verse bien pero eso que muestras en la imagen es raro; es el código de la plantilla con algún formato donde se cambian los caracteres < > y otros.
Desconozco el motivo ¿Has probado con otro navegador o borrando la caché? No parece ser un problema de la plantilla en si misma sino de la forma qen que se muestra.
Hola Jmiur, ya realice lo que me aconsejaste, pero nada :( siguen apareciendo errores y lo peor que si me acepto una plantilla nueva y ahora al querer poner otra me sale un error diferente y luego el mismo que el de la imagen. Mucho peor aún es que estoy perdiendo trafico, no se que hacer!
El blog se ve normalmente así que el tema del tráfico no se debe a eso.
No me has respondido si ves lo mismo en otro navegador o no.
Eso que ves está codificado con caracteres Unicode ¿por qué? lo desconozco. Los primeros dos dicen:
%3C%3F
que es lo mismo que escribir:
<?
Puedes decodificarlo en muchos sitios online como este y pegar el resultado para que vuelva a ser legible.
Jmiur, ya por una parte lo resolví, es que en la entrada http://vagabundia.blogspot.com/2009/08/blogger-editar-los-elementos-ocultos.html, realice ese truco, para ocultar un anuncio para que este no se mostrará en la edición html del panel de blogger. Entonces desde ahí comenzó todo los problemas. Como no lo solucione en mi PC, edite la plantilla en otra PC y borre los códigos que había agregado en esa entrada y funciono. Ahora ya lo puedo editar normalmente, en mi otro blog también tendré que hacer lo mismo ya que me aparece el mismo error.
El codigo que agregue fue el siguiente antes de
body#layout #ads {display:none;}
Borre ese codigo y ya no me apareció el error y ya pude editar la plantilla, aclarando que tuve que hacerlo en otra PC porque en la mía me aparecia el mismo error, ademas tuve que reinstalar el navegador, porque borrar el cache y probar en otro navegadores no me funcionó. No tengo idea porque me sucedió esto, pero bueno ya lo resolví, gracias Jmiur una vez más, saludos.
Hola de nuevo Jmiur, después de tanto buscar, por fin encontré la solución, actualizar mi sitio a la nueva interface de blogger y listo. Hasta el momento ne me ha aparecido ningún error. No se porque pasará esto... Pero gracias por todo Jmiur, saludos
JMiur, vengo a recurrir a tu ayuda nuevamente. Es justamente con las etiquetas, veo que las podés condicionar, mi pregunta es si podría condicionar una etiqueta y a la vez mostrar dos juntas, ¿por qué esto? Porque Blogger restringe la cantidad máxima de caracteres permitidos y me molesta mucho, tengo que reducir algunas etiquetas, que para mí sin imprescindibles.
Además, ¿hay manera de cambiar ese límite?
Los límites no pueden cambiarse. Lo que no entiendo es eso de poner dos etiquetas juntas, ¿a qué te refieres?
Me refiero a lo siguiente, con un ejemplo: Tengo las etiquetas E1 y E2, ahora bien, si desde la publicación de la entrada yo agrego sólo la E1, entonces que muestre no sólo la E1, sino también la E2.
Es decir, estaría condicionado por un if, y además se sumaría para para mostrar el típico E1 (5).
La idea es mostrar una, dos, o varias etiquetas juntas a partir de una.
¿Será posible hacer esto?
Digo, ya que de esta manera estaríamos "superando" el límite que nos impone Blogger. No sé qué tan viable sea.
No veo de qué forma puedes hacer eso.
Hola Jmiur, no encuentro la forma de como agregar etiquetas data de blogger dentro de un script, tienes alguna idea de como empezar haciendolo?, ya que cuando yo lo hago, no reconoce las etiquetas :( saludos
Dependerá del dato; en principio, se ponen entre comillas y no el script no debe incluir CDATA ya que se colocan usando < y ≶
Así que, tal como muestra un ejemplo en el post, se escriben con entities:
var etiqueta = '<data:label.name/>';
¿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 ...