JMiur [E]

Hace un tiempo, en un par de artículos [1] [2] se generaba una interesante charla sobre cómo mostrar los títulos de los posts en la barra de navegación de Blogger. Mi aporte fue parcial ya que parecía imposible que se vieran bien, lo peor de todo es que los caracteres especiales no se veían y eran reemplazados por guiones.

Solrac prometió estudiar el asunto y buscar una solución y aquí está:

Link con título completo del post anterior y posterior

Todo se basa en usar JSON (JavaScript Object Notation), algo que aún escapa a mi entendimiento pero que parece funcionar correctamente.

Lo primero que debemos hacer es descargar el script correspondiente al que alojamos en un servidor propio. Descargar en formato ZIP

Ahora, debemos ir a la Plantilla, Edición HTML y luego de hacer el backup correspondiente, Marcar la opción Expandir elementos y agregar el script, por ejemplo, justo antes de </head>:
<script src='URL_archivo/buscar_post_v0r1.js" type="text/javascript"/>
Ahora, debemos buscar la sección <b:includable id='nextprev'> que, normalmente tiene esta estructura:
<b:includable id='nextprev'>
<div class='blog-pager' id='blog-pager'>
<b:if cond='data:newerPageUrl'>
.......
</b:if>
<b:if cond='data:olderPageUrl'>
.......
</b:if>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
.......
</b:if>
</div>
<div class='clear'/>
</b:includable>
Y reemplazamos lo que está marcado por el llamado a la función:
<b:includable id='nextprev'>
<div class='blog-pager' id='blog-pager'>
<script src="http://nombreBlog/feeds/posts/default
?alt=json-in-script&amp;callback=buscarpost">
</script>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
.......
</b:if>
</div>
<div class='clear'/>
</b:includable>
donde reemplazamos nombreBlog por nuestra dirección URL.

Eso es todo, el script es relativamente sencillo de entender de tal manera que puede adaptarse a nuestras necesidades y además, está muy bien documentado, explicando cada detalle. Puede verse el código AQUÍ.

Por ejemplo:
// Número máximo de post a buscar
max_post=100;
Indica la cantidad de posts analizados, y es un valor que puede aumentarse si nuestro blog tiene más pero, aparentemente, hasta un máximo de 500.

La parte final del es la que "escribe" el resultado y, de ser necesario, es la que deberemos modificar para que se adapte gráficamente a nuestra plantilla:
if (ant_posturl != '') {
/* Solo escribimos */
entry_ant_post = '<br /><span id="blog-pager-newer-link">
<a href="' + ant_posturl + '" title="' + ant_posttitle 
+ '" class="blog-pager-newer-link">&laquo; ' 
+ txt_anterior + ' &laquo; ' + ant_posttitle + '</a></span>';
document.write(entry_ant_post)
}

if (pos_posturl != '') {
entry_pos_post = '<br /><span id="blog-pager-older-link">
<a href="' + pos_posturl + '" title="' + pos_posttitle 
+ '" class="blog-pager-older-link">' + pos_posttitle + ' &raquo; ' 
+ txt_posterior + ' &raquo;</a></span><br />';
document.write(entry_pos_post)
}

14 comentarios:

solrac  

Gracias J ;)

Por cierto, ¡veo que aún no lo utilizas! :|

Responder
JMiur  

Gracias a ti y muy buen trabajo.

Lo probé sin inconvenientes pero el problema que tengo acá es justamente la limitación en el número de posts que puede manejar JSON. Hasta ahora, no encuentro la forma de resolver esto.

¿Alguna idea?

Responder
Alonso  

Saludos JMiur, descubrí tu blog hace algunas semanas y desde entonces lo visito a regularmente en busca de cosas nuevas.

Quisiera saber si existe alguna novedad con respecto a este tema de los títulos en la navegación, he buscado en la web pero la verdad no encuentro nada :(

Por otro lado -y abusando un poco-, también me gustaría que hicieras un post para personalizar los resultados devueltos al usar un buscador sencillo, es decir, para que no se vea toda la entrada sino sólo el título de post o una miniatura, etc.

Bueno pues de antemano gracias y felicidades por vagabundia, ¡gran blog!

Responder
JMiur  

No, sobre el tema, no hay nada nuevo. Los feeds siempre están limitados a cierta cantidad de entradas.

En cuanto a los buscadores; si usas el buscador Ajax que se agrega como gadget, quizás se pueda personalizar un poco aunque no sé si sería conveniente que no se mostrara un poco de texto. Ese es el buscador que utilizo acá.

El otro que puedes personalizar es el buscador llamemoslo normal que muestra las entradas completas de manera similar a cuando se muestran las etiquetas. En ese caso, deberias utilizar algún sistema para resumir entradas pero se hará mucy complicado o imposible diferenciar las pa´ginas de resultados de búsqueda de otras ya que todas usan el mismo tipo de URL..

Responder
Adrián J. Messina  

J, esto está realmente muy bueno. Grandioso el trabajo de Solrak y tuyo.
Una pregunta, si yo quisiera colocar los links de entrada anterior y entrada siguiente debajo del título de lo posts condicionándolo en las páginas individuales.
Imagino que para mostrar debería escribir el div, pero no ubico en el script cual sería, cual sería también el CSS para darle forma a cada link. ¿Me podrías dar una mano?

Espero ansioso la respuesta, un abrazo.

Responder
JMiur  

No hay CSS, en este ejemplo, se usan las mismas clases que la navegación de Blogger.

Responder
Adrián J. Messina  

Ok. El CSS después lo veré.
¿Qué debería colocar debajo del título para mostrar ambos links?
Gracias!

Responder
JMiur  

No estoy muy seguro de cuál es la pregunta. Lo que se muestra acá es un reemplazo de la navegación de Blogger así que si se quiere que esa navegación se muestre arriba; basta colocar esto:

<b:include name='nextprev'/>

Responder
Adrián J. Messina  

Por ahí entendí mal el post.
Se supone que este script reemplaza la navegación de blogger que cuando hacemos en vez de mostrar la páginas más antigua o recientes muestra LA ENTRADA más antigua o más reciente. ¿Esto es así?
Lo que estoy interesado en saber es de que forma se puede mantener la navegación común de Blogger y debajo del título de los post, por ejemplo, colocar el link que diga ENTRADA ANTERIOR , ENTRADA SIGUIENTE.

No se que debería editar para mantener la navegación y darle un toque de CSS a esos links .

:D

Responder
JMiur  

Aclaro por las dudas que el script reemplaza la navegación de Blogger de las páginas individuales mostrando el título de esas entradas en lugar de un texto cualquiera.

Eso, sólo es posible en entradas individuales, en el resto no porque no hay una entrada sino varias así que lo que hay son páginas anteriores y posteriores con cierto número de entradas.

Responder
Adrián J. Messina  

Ah ok. Entonces si funciona en las entradas individuales.

¿Se podría condicionar para que "b:include name='nextprev'/" (se supone que ese es el link) se muestre debajo del título únicamente en las entradas individuales y en el home se muestre debajo como siempre?

De esta forma, se vería en la entrada individual un link que muestre el título de la entrada anterior y el título de la entrada siguiente

Por último un ejemplo de esta idea surge de esta web:

http://alt1040.com/2012/02/universidad-de-cambridge-desarrolla-celulas-cerebrales-celulas-de-la-piel

FIjate que dice ANTERIOR, hacés click y te muestra la entrada anterior a la que se ve. :D

Responder
JMiur  

En Blogger funciona igual. Anterior y Siguiente en una página individual abren esas entradas. El script, lo único que hace es mostrar el título de esas entradas en lugar de un texto fijo.

El problema es que ese título, no siempre es idéntico al título real; por ejemplo, carece de caracteres acentuados u otros especiales; incluso, en esa época, cuando se hizo el script, Blogger eliminaba esos caracteres de la URL en lugar de reemplazarlos por otros como hace ahora.

El enlace a esta post es: xxxxxxx/navegando-con-ttulos.html
si fuera actual, sería xxxxxxx/navegando-con-titulos.html

El include nextprev' puede ser condicionado sin problemas, como cualquier otro y mostrarse arriba abajo o en ambos lugares a la vez.

Responder
Adrián J. Messina  

Voy a probarlo a ver que sale, sinceramente no logro entender bien como funcionaría hasta que lo prueba y meta mano.

Ya que este script muestra los títulos, es posible generar un link a esa entrada anterior y posterior?

Abrazo, perdón por la insistencia pero quiero sacarme las dudas antes de toquetear todo :D

Responder
JMiur  

La paginación de Blogger son enlaces a las entradas anterior y siguente. Insisto, el script, sólo cambia el texto.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive

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