Blogger: Usando imágenes en lugar de etiquetas

Esta idea la escuché varias veces y siempre me pareció que era algo que podía hacerse pero no estaba muy seguro de cómo hacerlo. La inquietud de Gem@ me hizo pensar otra vez en el tema, el tiempo nos va dando algún que otro conocimiento y, sobre todo, algo de audacia .... entonces ¿qué pasaría si ...?

La pregunta concreta es esta:

¿Hay alguna forma de reemplazar los textos de las etiquetas por imágenes? Ojo, no hablamos de cambiar el texto "Etiquetas" que se ve al pie de página de cada post, eso es sencillo, basta buscar el código: <data:postLabelsLabel/> y poner en su lugar una imagen o un texto personal.

Tampoco se trata de anteponer un ícono a la lista de etiquetas, eso también se resuelve con sencillez anteponiendo la imagen a: <data:label.name/>

Lo que se quiere es asociar el nombre de una etiqueta con una imagen específica, es decir, si mi etiqueta es "Perro", mostrar un perro y si es "Elefantes rosados", mostrar un elefante rosado.

Y bien, la respuesta es sí, se puede, casi diría que es sorprendentemente sencillo así que le contesté a Gem@ su mail dándole la posibilidad de explicárselo personalmente o publicarlo. Rápidamente respondió: "Me parece ideal que lo publiques, creo que puede interesar a todos ... ¿A qué estás esperando?".

Eso me pasa por preguntar. Dejé mis jueguitos y me puse a hacer lo que me ordenó risa

Para resolver el tema debemos partir de una limitación: dónde alojar las imágenes a utilizar. Si las subimos a Blogger, las direcciones URL que tendremos serán, como mínimo, estrafalarias; no tenemos forma de deducirlas, cada una es diferente y NECESITAMOS SABER dónde están las imágenes, lograr que la dirección URL sea algo fijo donde sólo cambie el nombre del archivo y no el resto del dominio ni el directorio donde están guardadas.

No podemos usar Blogger y por la misma razón no podemos usar ImageShack sin embargo, hay varios servicios que establecen una dirección fija: Photobucket, Fileden, Google Pages, Hostfile, etc. En algunos de ellos incluso podemos crear carpetas, de esta manera, todas las imágenes tendrán la misma estructura, por ejemplo:

http://i140.photobucket.com/albums/r25/JMiur/Labels/nombre_Archivo1.ext
http://i140.photobucket.com/albums/r25/JMiur/Labels/nombre_Archivo2.ext

Entonces, como primera medida, subimos las imágenes a uno de esos servidores, todas con el mismo formato y extensión (jpg, png, gif); lo único que debe cambiar es el nombre del archivo que deberá ser exactamente igual al nombre de la etiqueta; es decir, tendremos alojadas tantas imágenes como etiquetas y todas las direcciones serán similares:

Si la etiqueta es perro:
una imagen PNG estará en http:un_servidor/perro.png
Si la etiqueta es elefantes rosados:
una imagen PNG estará en http:un_servidor/elefantes rosados.png

Los tamaños de las imágenes no tienen importancia, eso dependerá de cómo queremos mostrarlas, pueden ser todas iguales o todas diferentes.

Debemos saber que hay dos lugares del blog donde se muestran las listas con las etiquetas: debajo de cada post o en un elemento Labels en la sidebar, el header o el footer. Empecemos con este último.

Blogger permite agregar varios elementos Labels así que, si ya tenemos uno no hace falta sacarlo, en todo caso, esa es una decisión posterior. Vamos a la Plantilla y en Elementos de la página, agregamos el elemento y lo configuramos como se nos ocurra. Guardamos y ahora vamos a Edición HTML y marcamos Expandir artilugios.

Buscamos el código de ese elemento recién agregado que, será más o menos este:
<b:widget id='Label2' locked='false' title='El_Titulo' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'> <h2><data:title/></h2> </b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'>
<data:label.name/>
</a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
Si se fijan, las etiquetas se muestran en una lista, eso es lo que está definido por los códigos:
<ul>
<li>
... las etiquetas ...
</li>
</ul>
Dependerá mucho de cómo vamos a mostrarlas pero, en principio, podríamos eliminar esas líneas o darles una clase para luego poder manipularlas con CSS:
.sidebar ul.listaetiquetas {
... propiedades ...
}
.sidebar li.etiquetaimagen {
... propiedades ...
}
Luego, la parte importante, reemplazar el texto de la etiqueta (<data:label.name/>) por la imagen correspondiente; para esto, vamos a usar una facilidad de Blogger, crear una expresión:
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"'/>
Esto se encuentra en dos líneas diferentes. Cambiamos ambas pero reemplazamos http://nuestro_servidor por la dirección del servidor donde esté alojada la imagen y ext por la extensión del tipo de archivo que utilicemos. Y ya que estamos, también eliminamos el contador (<data:label.count/>). El código quedaría así:
<b:widget id='Label2' locked='false' title='El_Titulo' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'> <h2><data:title/></h2> </b:if>
<div class='widget-content'>
<ul class='listaetiquetas'>
<b:loop values='data:labels' var='label'>
<li class='etiquetaimagen'>
<b:if cond='data:blog.url == data:label.url'>
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"'/>
<b:else/>
<a expr:href='data:label.url'>
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"'/>
</a>
</b:if>
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>

Lo mismo podemos hacer con las etiquetas que se muestran debajo de los posts, esto lo vamos a encontrar en:

<b:includable id='post' var='post'>

Por defecto, el código de esa parte es el siguiente:
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<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:if>
Como se ve, es muy similar al anterior pero, no es una lista HTML sino que se escriben una al lado de la otra así que eliminamos el carácter separador (la coma) y, nuevamente, reemplazamos el texto <data:label.name/> por la imagen:
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"'/>

En este caso, podemos crear una variante, utilizar una imagen personalizada y además, el texto, uno al lado del otro:
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"'/> <data:label.name/>

46 comentarios:

...Markos...

Tiene muy buena pinta , pero tendríamos que hacer este paso con cada imagen o habría algún otro método en un sólo paso?

Saludos

JMiur

Las imágenes habrá que crearlas una por una y alojarlas pero el código es único, se pone tal cual está, en un bucle que lee las etiquetas, arma una dirección url y la muestra.

No tengo muy claro a que te refieres con eso de los pasos.

solrac

Muy bueno y gracias por este 'hack' JMiur.

Se me ocurre un pequeño cambio, ¿se puede incluir el 'title' en la imagen con el texto de la etiqueta? .. algo así como:
<img expr:src='"http://nuestro_servidor/" + data:label.name + ".ext"' title='"["+data:label.name+"]"'/>

Otra duda, ¿se puede controlar en el caso de no poder cargar la imagen (que no existe, servicio hosting caído, etc.) que aparezca el texto de la etiqueta?

JMiur

Solrac:

Como siempre, muy buenas aclaraciones :)

Creo que debería ser:
expr:title='"["+data:label.name+"]"'
pero sería cuestión de probar.

O cualquier combinación:
expr:title='"Enlace a " + data:label.name'

Lo del texto alternativo, en teoría debería funcionar si hacemos lo mismo pero con el atributo ALT ya que este es el texto ALTernativo que se muestra cuando un objeto no es encontrado:

expr:alt='data:label.name'

También es cuestión de probar poniendo una etiqueta que no tenga la imagen creada.

solrac

opps ... ya no me acordaba del ALT :(



otra cosa ... sigo trabajando con el JSON para recuperar los títulos de los post anterior y posterior ... He conseguido que me funcione aunque debo depurarlo. Lo malo es que a medida que aumenten el número de post aumentará el tiempo de búsqueda.

Gem@

Muy bueno como siempre ;) buscaré iconos para probar.
(Llevo dos días que me da la sensación que Google Pages se cae ¿has notado algo?)

Gem@

Solucionado, me he excedido en el ancho de banda :(

...Markos...

Perdón JMiur , me confundí al formular mi pregunta , resuelto. ¡Gracias , ahora a intentar probar el hack con éxito!

...Markos...

Jejeje...muy sencillo y muy bien explicado! Prueba superada , compruébalo aquí jeje

Saludos

JMiur

Solarc:
Eso nos pasa a todos :D

Gem@:
No he notado nada y eso del límite del ancho de banda es algo preocupante ¿Tienes idea de cómo puede hacerse para averiguar cuál es y cuánto estamos usando?

Markos:
Acabo de verlo y parece funcionar correctamente :D

Pablo [BetaDir]

.. hacer este tipo de cosas en Blogger es una proeza ... es increible lo que logras sin documentacion alguna // la verdad si no fuera por PHP (que como sabes estoy aprendiendo) no podria hacer nada para la web... como mucho cambiar el aspecto de un blog modificando los CSS // FELICITACIONES JMIUR

JMiur

Las limitaciones son una desventaja de la cual hay que sacar provecho como se pueda :D

Gem@

Olvidé comentarte aquí que mi prueba fue superada.
Para el ejemplo añadí los iconos en el footer de las entradas con tus recomendaciones siempre acertadas.
Gracias de nuevo :)

JMiur

Vi tu post publicado así que ya me había enterado que todo había quedado resuelto :)

Seba

Hola!! como andas jmiur, me encanta tu blog, pero sinceramente no entiendo mucho como hacer para que me funcione este truco, ya que me encantaria hacerlo en mi blog, de hace mucho me vengo preguntando como hacer para poner una imagen diferente para cada etiqueta, estaria bueno, si podes, que me lo explicaras, pero por msn ya que te entenderia mejor, yo por las dudas te dejo mi msn y mi direccion de blog, MSN: sebastian_alejandro1992@hotmail.com

DIRECCION DE MI BLOG: http://sarguet.blogspot.com

espero que me lo puedas explicar! me sera de mucha utilidad, gracias de antemano, un saludo

JMiur

Seba, envíame un mail y me explicas qué quieres hacer y donde ponerlo :)

vagabundia@gmail.com

thecatnegro

bueno con practica se puede hacer te felicito por el manual esta fino tengo blogger espero ponerlo en practica en un futuro

Rociobrujita

Gracias
Ahora una cosa a mi me habian dicho q para cosa debia creear un blog nuevo
POR EJEMPLO: Postres(un blog) y mostrar. una tarta
Carnes(otro blog) y mostrar un fileteç
¿me entiendes?? con esto q tu dices¿tengo q tener un blog de cada dosa o me vale solo uno??(ya tengo casi todos,jajaj
Un besin

JMiur

Lo explicado acá es para colocar en un blog, no hace falta tener varios. No sé cómo es la idea general que tienes así que no puedo aclarar nada más. Puede ser que lo que te hayan dicho tenga que ver con alguna otra cosa.

Noisuf

Gracias por el hack, era algo que buscaba =).
actualmente configuro mi blog, y esto me va a servir. Saludos =).

ZoD

No se k me salio mal pero las imagenes no me aparecen.
Me salen unos cuadros con una cruz sin embargo les doy click y si me manda al link de la etiketa

JMiur

Eso significa que la dirección de las imágenes es errónea. Revisa eso.

Fernandooo1

^^ Hora de quitar Hostfile y Google Pages de la lista (checa el post)...

Y tan "buenos" que solían ser.

JMiur

NOOOO!!!!!!!!! Me niego, me niego, me miego :D

Demasiado trabajo quitar esas referencias de TODOS los posts. Ya bastante tengo con la mudanza forzada :)

Fernandooo1

xD!!!!

Sí, sí, creo que ya ha sido suficiente.

Tanto, tanto ansío que Blogger escuche!

ZoD

Tenias razon la direccion no era correcta.

Geacias por el truco. Saludos.

Gem@

Como para que ahora también se quedara colgado Imageshack uffffffffffff

JMiur

El asunto se está poniendo pesado, por cierto ;)

ViNeOn DrEaMs

Disculpa, este truco es muy bueno pero tengo un problema. Tengo muchas etiquetas y si aplico este truco tendre muchas imagenes k estaran en forma de lista muy larga.
Existe una manera de acomodar las etiquetas de manera k no aparesca una lista interminable de imagenes?

JMiur

N ose me ocurre ninguna forma sencilla de hacerlo.

-¦-= Shadow†Sneak =-¦-

Disculpa si sale doble posteo, es que lo hice en las 2 ventanas , me urge el tema..XD.. bueno si sale borras 1 y ya.je..

Hola, antes que nada decir que me e encontrado con un excelente blog con info muy necesaria y buena, bueno mi problema espero me ayudes ya que e buscado por todas partes este hack y al fina di con el , e seguido todos los pasos y no se que esta saliendo mal al final las imágenes me salen como si no estuvieran o fueron movidas, habrá faltado algún código?, seguí todos los pasos y no logro que me salga la imagen que aloje , la otra pregunta, no entendí como agregar imágenes a las diferentes etiquetas, dentro del "gadget" que cree tengo si diferentes secciones , lo que no entiendo es como agregar 5 diferentes imágenes a las 5 diferentes etiquetas como se muestra en la imagen que dejaste , ojala me puedas ayudar ya que soy solo un novice en esto de los códigos, estoy arreglando el blog para muestras de trabajo y esta aplicación me serviría de mucho , tanto para estética y funcionalidad, ojala me ayudes.

Elcódigo que sale en mi plantilla, me fije que hay códigos que no salen en tu muestra , supongo que es por plantilla diferente eso creo.

Pdt: de nuevo, muy buen blog. ||

saludos.

JMiur

Así como lo explicas no comprendo muy bien. Necesitaría ver lo que has hecho aunque no funcione porque sin duda, se trata de algún error de sintaxis pero no sabría decirte donde.

-¦-= Shadow†Sneak =-¦-

Te podría mandar la plantilla para que vieras cual es el problema y vieras esos códigos que salen demás?

saludos.

-¦-= Shadow†Sneak =-¦-

O mejor dicho solo la parte que necesito modificar?

JMiur

Puedes hacerlo aunque n osé si podré ver el problema, de todas maneras, lo intento.

-¦-= Shadow†Sneak =-¦-

OK.. fracias por responde se agradece tu amabilidad y tiempo para responder..

ahí la mando, dentro del txt explico el problema , para que vayas al grano.

gracias y saludos.

JMiur

OK. Ta lo recibí. Déjame ver si entiendo el problema y te contesto.

-¦-= Shadow†Sneak =-¦-

Hola, gracias por responder pero, entonces cual seria la solución? quede mas confundido con lo que mandaste..XD.. todas las fotos que dejaste están como link muerto, =/...

saludos.

-¦-= Shadow†Sneak =-¦-

Estuve leyendo y entendiendo mejor lo que mandaste , lo que me recomiendas es cambiar los títulos ? ejemplo 1,2,3, etc.. para luego reemplazarlos? por imágenes ya que total en las imágenes colocare a la sección que se refiere?

saludos.

-¦-= Shadow†Sneak =-¦-

Sabes que al dejar localizado el link con la imagen y separando el .png y agregando otro "Fanart" como dejaste en el e-mail no lo toma ..e tratado como lo dejaste en el mensaje y no pasa nada no se que hacer no se me ocurre nada , aparte que no manejo la nada de códigos lo hago solo por intuición y por experiencia que vas tomando con el tiempo tanto copy paste.. el link es este así lo reconoce perfecto pero con las separaciones que me dejas no lo tomara nunca.

http://i649.photobucket.com/albums/uu211/Shadow_Sneak/Fanart.png

JMiur

Yo no envié imágenes. Sólo te enumeré donde deberian estar y cuales deberían ser los nombres de esos archivos porque esa URL es la que construye el código y, como no hay ninguno, simplemente no muestra nada así que lo primero es colocar las imágenes.

Si el servidor y la carpeta donde esta la imagen son estos:
http://i649.photobucket.com/albums/uu211/Shadow_Sneak/
y el archivo se llama Fanart al igual que la etiqueta y tiene extensión .png, este código:

<img expr:src='&quot;http://i649.photobucket.com/albums/uu211/Shadow_Sneak/&quot; + data:label.name + &quot;.png&quot;'/>

mostrará esa imagen.

Si la etiqueta fuera CUALQUIERCOSA y hubiera un PNG alojado en la misma carpeta y que tuviera por nombre CUALQUIERCOSA.png, el mismo código mostraría esa segunda imagen. Porque lo que hace es eso, busca en esa carpeta un archivo que se llame igual que la etiqueta.

Así que, cada etiqueta debe tener un archivo con el mismo nombre de la etiqueta; todos deben estar alojados en el mismo lugar y todos deben tener la misma extensión.

En esta entrada de un blog de pruebas está colocado ese código con esa etiqueta y esa imagen.

-¦-= Shadow†Sneak =-¦-

Gracias man por tu gran ayuda, no me la puede ganar, gracias por la paciencia..XD... te comento luego si me funciona, no me la va a ganar!!!..XD

saludos y gracias..

-¦-= Shadow†Sneak =-¦-

Hola, de nuevo yo :D.. sabes por mas que trato no me sale nada.. me rindo!!.. disculpa pero te mande un e-mail , pidiendo la salvación..jeje.. ojala me ayudes.. con lo que dice.

saludos y disculpas.

-¦-= Shadow†Sneak =-¦-

Gracias por responder, algunas cosas no las respondiste nunca XD, "era lo mas importante", pero bueno , tampoco sirvió lo que mandaste esta es la 1era vez que no me funciona un código, en una de esas sera por la plantilla, la que tengo es la "mínima", buscare por otras partes haber si esta bien todo para que funcione..

saludos.

-¦-= Shadow†Sneak =-¦-

Yeah!! al fin lo logre..XD.. parece que tanto subrayado me dejo medio perdido, con lo último que enviaste me quedo mas claro, la otra vez colocaste unas palabras demás y por eso no salia, ahora si dejaste el preciso , es muy simple..XD.. al fin, este sera mi último posteo en este tema...XD ..gracias..

saludos.

PDT: elimine un post porque me faltaron unas comas..jeje..

¿Quiere dejar un comentario?

Hay varios métodos posibles.

Uno de ellos es el formulario de comentarios que tan generosamente nos ha regalado Blogger y que funciona sólo de tanto en tanto. Su uso es aconsejable sólo en caso de ser una de esas personas a las que les gustan los retos y los desafíos.
¿No quiere arriesgarse? Haga click para ocultarlo y utilice las otras opciones.

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

Los comentarios están siendo moderados y serán publicados a la brevedad.