JMiur [E]

Si mezclamos la posibilidad de utilizar elementos condicionales con el servicio de Feed2JS, podríamos crear un widget en la sidebar que mostrase en las páginas individuales, una lista con las últimas entradas que tengan la misma etiqueta que el post.

Como no hay ninguna instrucción de Blogger que nos permita conocer las etiquetas de un post fuera del bucle que lo muestra, vamos a usar JavaScript para "guardar" ese dato y utilizarlo luego.

Lo primero que debemos hacer es colocar una línea en la plantilla; expandiendo los artilugios, buscamos el código correspondiente al bucle que muestra las etiquetas (arriba o abajo de los posts) y añadimos eso marcado en color:
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
<script>
var etiquetasRelacionadas=&quot;<data:label.name/>&quot;;
</script>
<b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>
Simplemente, creamos una "variable" a la que llamamos etiquetasRelacionadas y donde guardamos el dato que nos devuelve Blogger en <data:label.name/> es decir, el nombre de una etiqueta.

Ahora, deberíamos agregar un elemento HTML que ubicaremos en la sidebar donde quisiéramos que se mostrase y allí, colocamos lo siguiente:
<script type="text/javascript">
var fuente = "http://feed2js.org//feed2js.php?src=http://nuestroBlog.blogspot.com/feeds/posts/summary/-/" + etiquetasRelacionadas + "&amp;chan=n&amp;num=10&amp;desc=0&amp;html=p&amp;date=n&amp;targ=y&amp;utf=y";
document.write('<script src="' + fuente + '"><\/script>');
</script>
Donde lo único que debemos cambiar es nuestroBlog.blogspot.com por la dirección de nuestro blog.

Lo que hará ese script es construir la dirección de los feeds de la etiqueta que siempre tiene la misma estructura:

http://nuestroBlog.blogspot.com/feeds/posts/summary/-/nombreEtiqueta

Y luego, creará una etiqueta SCRIPT y la escribirá en la página.

Por último, como esto sólo tendrá sentido en una página individual, deberemos volver a la plantilla, expandir los artilugios y modificar el elemento para que no se muestre en el resto de las páginas:
<b:widget id='HTMLX' locked='false' title='ETIQUETAS CONDICIONALES' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == "item"'>
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
<b:else/>
<style>#HTMLX {display: none;}</style>
</b:if>
</b:includable>
</b:widget>
En el ejemplo, sólo detectamos una etiqueta (esa es una limitación) pero, con alguna modificación podríamos "guardar" varias usando un array aunque no se me ocurre cómo podríamos utilizarlas

11 comentarios:

Bardruck  

me encanto, buscaba algo así desde hace tiempo, te lo robaré, jaja

Responder
QuéOlorTiene  

Gracias JMiur!!! Anoche estaba pensando en una solución de este tipo que capturara etiquetas para un post en una página individual, pero me ganó el sueño.

Utilidades?? Todo depende de la página, pero en mi caso desarrollé un bloque en javascript que lista en orden aleatorios unos 10 post que coincidan con un conjunto de etiquetas seleccionadas vía checkbox. Como mi blog es de perfumes, las etiquetas sirven para filtrar características de perfumes y con la idea que publicaste hoy puedo habilitar la posibilidad de mostrar todos los perfumes con las mismas características que el que está en pantalla.

Gracias!!

Responder
JMiur  

Bardruck:
Feed2JS es realmente un servicio interesante y mientras exista, hay que sacarle provecho.

QuéOlorTiene:
Lo estuve viendo en tu blog. Suena muy interesante; ¿sería una forma de mostrar posts que coincidan con varias etiquetas?
No sabía que existiá la posibilidad de combinar las etiquetas; eso es una novedad y realmente amplia las posibilidades. Muy buen descubrimiento :D

Responder
QuéOlorTiene  

Así es JMiur... en lugar de usar un array puedes concatenar las etiquetas separándolas con un slash "/". Así te queda algo parecido a:

http://nuestroBlog.blogspot.com/feeds/posts/summary/-/etiqueta1/etiqueta2/etiqueta3

que muestra los post que tengan al menos esas 3 etiquetas.

El código javascript que preparé toma de un array fijo 3 etiquetas al azar, las concatena y muestra una selección de post aleatorios. Con tu idea puedo reemplazar las 3 etiquetas al azar y usar como parámetro la concatenación de etiquetas que tiene el post. Así entrega información más precisa relacionada con lo que se está leyendo.

Responder
JMiur  

Sí, eso vi exactamente cuando probé en tu blog, que basta separarlas con barras. Muy buen descubrimiento :)

Responder
EmiTer  

Estoy intentando poner un widget con las ultimas entradas de mi blog, estoy utilizando para ello la pagina Feedasplush. Se me ve el resumen de las ultimas entradas, pero no se como hacer para que se vea la imagen que tengo al principio de la entrada y eso que al diseñar el widget active la opción de ver imagenes.
Alguna idea de que estoy haciendo mal, o de otro widget que sirva para ver el resumen de la entrada incluyendo la imagen que esta al principio de la entrada

Responder
JMiur  

Algunos sistemas no leen los feeds de Blogger correctamente y suele haber problemas cono ciertas opciones. No creo que estés haciendo nada mal sino que simplemente Feedasplush no logra leer las imágenes.

A mi me gustó mucho el sistema de Wowzio; en este post están colocadas varios modelos y algunos de ellos muestran las imágenes de las últimas entradas, solas o combinadas con el texto.

Responder
EmiTer  

Gracias por tu ayuda

Responder
JMiur  

Pués n oveo que eso tenga nada que ver con este truco ya que acá se coloca todo en un elemento HTML separado.

Lo que n oto es que en tu plantilla hay dos elementos Blog: Blog1 y Blog2 y por eso, las entradas individuales se duplican; debes elimianr el segundo de ellos desde la ventana de Diseño.

Responder
JMiur  

Lo pudes eliminar desde la primera pantalla de diseño tal como harías con cualquier gadget o bien desde la plantilla misma si sin expandirla, ves algo así como esta línea:

<b:widget id='Blog2' locked='true' title='Entradas del blog' type='Blog'/>

Seguramente hay dos con IDs diferentes: id='Blog1' e id='Blog2'

Lo debes haber agregado por algún motivo pero la razón la desconozco :D

Responder
JMiur  

Perfecto :D

Responder

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

 
CERRAR