Páginas

30 junio 2011

Navegar etiquetas debajo de las entradas

Si entendí bien la pregunta de Josema, su idea es que, cuando se haga click en el enlace de una etiqueta, las entradas de esa etiqueta se muestren así como normalmente se muestran las entradas relacionadas debajo de cada post,es decir, una imagen y un resumen de la misma.

Hace mucho tiempo había puesto algo parecido que requería de la librería Prototype y que terminé quitando porque ... no me acuerdo por qué pero seguro que era una buena razón o no.

Ahora repito la experiencia y veremos qué pasa pero, sin librerías extras ya que luego de un par de años y doscientos mil quinientos treinta y dos errores, más o menos he logrado comprender como funciona esto de Json que es, claro, lo que debe usarse en cualquiera de estos casos porque no hay otra manera de filtrar y acceder a los datos de Blogger que no sea leyendo los feeds.


Lo que cuento es lo que puede verse en la parte inferior de las entradas individuales de este blog; allí, se ven las etiquetas que tiene la entrada (salvo cuando me olvido de ponerlas) y debajo, las entradas relacionadas que también se leen con Json y muestran cuatro entradas tomadas al azar. Los enlaces de esas etiquetas, abren las páginas por defecto que crea Blogger que son de tipo:

http://miblog.blogspot.com/search/label/NOMBRE_etiqueta

La idea es reemplazar esos enlaces para que, en lugar de abrir una página, se puedan ver sin salirse de la página y navegar por ellas, avanzando o retrocediendo por todas las entradas que existan con esa etiqueta, sin importar si son veinte o cientos ya que intentaremos no colapsar el sitio, cargando los scripts uno por uno y borrándolos de la memoria una vez que ya no se usan.

El criterio básico es utilizar el mismo esquema que en esta otra entrada y como no puedo pensar en abstracto y no existe un esquema idéntico en todas las plantillas, me limito a mostrar qué hice y las variaciones deberán ser investigadas ya que son casi infinitas.

Primero, expando la plantilla y busco el lugar donde tengo agregados los posts relacionados y allí, haré dos cosas, indicaré la altura del DIV que los contiene y debajo, agregaré una serie de etiquetas con IDs específicos que son en aquellas donde el script escribirá los datos:
<div class='post-footer-line post-footer-line-4'>
  <div id='postsrelacionados' style='height:190px;'>
    <script type='text/javascript'>mostrarrelacionados();</script>
  </div>
  <div style='clear:both;'/>
</div>

<div class='post-footer-line post-footer-line-5'>
  <div id='etiquetasbajopost' style='height:0px;'>
    <div id='navetiquetas'/>
    <div id='navetiquetassel'/>
    <div id='navetiquetasfooter'/>
  </div>
</div>
Si guardo, todo queda igual que antes, los posts relacionados no cambian y debajo hay etiquetas sin contenido que tienen altura cero justamente para ocultarlas ya que intentaré permutar entre ellos y el nuevo sistema, ocultando uno cuando se muestra el otro y viceversa.

Busco ahora el LOOP donde Blogger escribe las etiquetas y por las dudas, condiciono los enlaces porque sólo quiero que esto funcione en las páginas individuales:
<b:loop values='data:post.labels' var='label'>
  .......
  <b:if cond='data:blog.pageType == "item"'>
    <a expr:onclick='&quot;setnavetiquetas(\&quot;&quot; + data:label.name + &quot;\&quot;);return false;&quot;' href='javascript:void(0);' rel='tag'><data:label.name/></a>
  <b:else/>
    <a expr:href='data:label.url' rel='tag'><data:label.name/></a>
  </b:if>
  .......
</b:loop>
Y ahora, el script que va antes de </head> que también podemos condicionar.


Como siempre, algo de estilo a gusto de cada uno que también ponemos antes de </head>:

10 comentarios:

  1. Ole. ole y oleeeeeeeeeeeeeee ha quedado de lujo, me gusta porque visualmente no se mezclan etiquetas y relacionadas y con paginación.
    Superior, o de 10 como dirían algunos :D

    ResponderBorrar
  2. your blog really full amazing feature...cool ☻

    ResponderBorrar
  3. hola amigos les escribo para pedirles un favor tengo el sgte blog http://razhielanime.blogspot.com/

    esta plantilla la cree con el artisteer 3 y me gustaria que al darle en el wabget de etiquetas se despliegen estas y se contraigan ya saben por estetica he intentado con varios codigos el que me funciono con las plantillas de blogger fue este http://elescaparatederosa.blogspot.com/2009/05/expandir-y-contraer-gadget-con.html

    pero no con esta plantilla y me gustaria que me ayudaran con esto y si en algo les puedo servir con mucho gusto lo haria
    gracias

    ResponderBorrar
  4. Gem@, Beben Koben:
    Fue divertido hacerlo, creo que quedó bien.

    carlos:
    Como ese blog usa JQuery y la entrada de Rosa habla de un script usando Prototype, no funcionará; primero, porque no has agregado las librerías y segundo porque son incompatibles entre si. Debes buscar algo que funcione con la lbrería de scripts que utilizas.

    ResponderBorrar
  5. ¡Uy que locura!
    Esto es bellísimo.
    Veo que tengo trabajo para el fin de semana.
    Lo primero que me gustaría saber es si se puede utilizar sabiendo que para las entradas relacionadas no utilizo JSON, es decir lo aplico mediante otro script.

    ResponderBorrar
  6. gracias , voy a ver si se ven en mi blog y me voy a matar con el diseño haber si me queda gustando.

    ResponderBorrar
  7. Hola JM, no tiene demasiado que ver con esta entrada mi pregunta, pero como era cuando una quería usar las etiquetas... hay no se como explicarme... a ver... en un menú, así por ejemplo http://www.sonando-porbailar.com.ar/search/label/So%C3%B1ando%20por%20Bailar y que no salga el cartelito de "Mostrando entradas con la etiqueta Soñando por Bailar"? Se entiende? Tengo un menú en base a etiquetas y sale siempre ese cartel, me acuerdo que en algún lado se sacaba eso, pero no donde :S
    Gracias :-)

    ResponderBorrar
    Respuestas
    1. Supongo que hablas de este código:

      <b:include data='top' name='status-message'/>

      si se elimina, deja de mostrarse ese detalle.

      Borrar
    2. Supongo que será ese, pero lo quité y sigue saliendo el mismo cartelito :S

      Borrar
  8. No he dicho nada :S volví a mirar la plantilla y estaba todavía el código ahí, volví a eliminarlo y ahora si se fue el cartel, se ve que no habría tomado el cambio o vaya una a saber esas cosas de Blogger ;-)
    Mil gracias :)

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.