JMiur [E]

Algunas aclaraciones a dudas que me han consultado por mail respecto de Mostrar los títulos en la barra de navegación.

¿Qué diferencia un blog de una página web "normal"? Muchas cosas pero, una de las que parece confundir más a la hora de modificarlo es la manera en que podemos navegar en él.

Cuando hacemos click en cualquiera de los enlaces internos de un blog, el navegador nos muestra una página y si utilizamos el menú Ver Código Fuente, veremos una serie de instrucciones HTML pero, si observamos con cuidado, notaremos que se parece algo al código de nuestra plantilla y, tal vez, reconozcamos un par de líneas pero, nada más, el resto ¿de dónde sale?

Eso que vemos y que termina siendo lo que los navegadores muestran es una mezcla de cosas: los datos de nuestra configuración + los datos de los elementos que hayamos agregado + los posts + los comentarios + la plantilla. Cada una de esas partes son independientes entre si y sólo se juntan cuando se genera la página. Eso es lo que se llama: una página dinámica.

Las páginas dinámicas son páginas HTML creadas a partir de lenguajes de programación ejecutados por un servidor web, en este caso, Blogger. Este código HTML se modifica o se adapta a las diferentes solicitudes de los usuarios y el resultado mostrará diferentes contenidos. Traducido al castellano, cuando hacemos click en los archivos del blog, Blogger crea una página, cuando hacemos click en las etiquetas crea otra, cuando hacemos click en la página principal otra, etc, etc, etc.

Un sitio web "normal" es un conjunto de páginas estáticas, cada una es un archivo que debemos modificar manualmente para enlazarlo con otros. Un blog es un conjunto de páginas dinámicas que se modifican cada vez que un usuario realiza alguna acción.

Cuando navegamos en un blog de Blogger hay cuatro posibilidades diferentes:
  • estamos en la página principal
  • estamos en una página individual (un post)
  • estamos en una página de archivos (posts de cierta fecha)
  • estamos en una página de etiquetas (posts relacionados)
Al final de cada una de ellas, por defecto, aparecen unos enlaces que nos permiten la navegación: ir hacia adelante, ir hacia atrás o ir al inicio ¿Adelante o atrás de que? pués en el orden cronológico porque un blog es básicamente eso, una serie de posts ordenados cronológicamente.

Cuando hacemos click en esos enlaces, Blogger nos mostrará otra página con las mismas características que la primera es decir, si estamos en un página individual nos mostrará otra página individual, si estamos en una página de etiquetas nos mostrará otra página de etiquetas.

El código standard de esa sección en el siguiente:
<b:includable id='nextprev'>

<div class='blog-pager' id='blog-pager'>

si hay una página siguiente
<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
enlace a la página siguiente
<a class='blog-pager-newer-link'
expr:href='data:newerPageUrl'
expr:title='data:newerPageTitle'>
<data:newerPageTitle/>
</a>
</span>
</b:if>

si hay una página anterior
<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
enlace a la página anterior
<a class='blog-pager-older-link'
expr:href='data:olderPageUrl'
expr:title='data:olderPageTitle'>
<data:olderPageTitle/>
</a>
</span>
</b:if>

y el enlace a la página principal
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<a class='home-link' expr:href='data:blog.homepageUrl'>
<data:homeMsg/>
</a>
<b:else/>
<b:if cond='data:newerPageUrl'>
<a class='home-link' expr:href='data:blog.homepageUrl'>
<data:homeMsg/>
</a>
</b:if>
</b:if>

</div>
<div class='clear'/>
</b:includable>
donde:

<data:newerPageUrl/> es la dirección hacia adelante
<data:newerPageTitle/> es el texto "Entradas más recientes" y que muchas veces cambiamos por una imagen
<data:olderPageUrl/> es la dirección hacia atrás
<data:olderPageTitle/> es el texto "Entradas antiguas" o una imagen
<data:blog.homepageUrl/> es la dirección del la página principal
<data:homeMsg/> es el texto "Página principal" o una imagen

También hay una serie de propiedades por defecto que colocan un enlace a la derecha, otro a la izquierda y otro en el centro:
#blog-pager-newer-link {float: left;}
#blog-pager-older-link {float: right;}
#blog-pager {text-align: center;}
Tanto data:newerPageUrl como data:olderPageUrl son direcciones URL que calcula Blogger y cuyo formato varía de acuerdo al tipo de navegación que estemos haciendo.

En la página principal será algo así:
http://nombreBlog.blogspot.com/search?updated-max=fechaThora&max-results=cantidad

En una página individual:
http://nombreBlog.blogspot.com/año/mes/tituloPost.html

En una página de categorías:
http://nombreBlog.blogspot.com/search/label/etiqueta?updated-max=fechaThora&max-results=cantidad

En una página de archivos:
http://nombreBlog.blogspot.com/fecha_archive.html

A los efectos prácticos, podemos decir que hay sólo dos modelos de páginas, las de post individuales y todas las otras. Esto es así ya que sólo hay una forma de indicarle a Blogger en que tipo de páginas mostrar ciertas cosas, utilizando los llamados códigos condicionales:
<b:if cond='data:blog.pageType == "item"'>
esto sólo se ejecuta en una página individual
</b:if>

<b:if cond='data:blog.pageType != "item"'>
esto se ejecuta cuando NO es una página individual
</b:if>
Son instrucciones como esas las que hacen que las páginas generadas sean diferentes y, en realidad, casi no hay restricciones al respecto y podrían utilizarse más ampliamente. Por ejemplo, podría haber headers diferentes o mostrar u ocultar la sidebar completa.

13 comentarios:

jagvalverde  

Muchas gracias por la explicación. Me ha sido de gran ayuda.

Responder
111  

No sabes como me ha ayudado esto.

Muchas Gracias

Responder
JMiur  

Me alegro que te fuera últil Septuplo :D

Responder
Shark_Bloody  

Hola JMiur, el caso es que pense que podia presindir de ese coso, pero la verdad es que me hace falta.

El tema es asi, borre el codigo, y obiamente no aparecia en el blog, pero ahora lo restaure y sigue sin aparecer...

Te dejo un enlase a una copia de mi plantilla (ver plantilla click derecho>> guardar enlase como...)

Seria de gran ayuda que me des una mano, porque no entiendo porque no aparece, ya que volvi sobre mis pasos XD

Responder
JMiur  

Sharck_Bloody:

Parecería que te falta agregar un código, busca esto:

<b:include name='feedLinks'/>

y coloca encima esto:

<b:include name='nextprev'/>

Responder
Felipe Calvo Cepeda  

Hola Sr. JMiur. :D

Compadre estoy teniendo un problema con la navegación por etiquetas en mi blog principal.

Lo que sucede es que tengo configurado para que cuando se haga click en el enlace a la etiqueta se muestren las 20 entradas predeterminadas por Blogger, pero, "se me pierde" el enlace para navegar por las etiquetas restantes.

Por ejemplo, para la primera etiqueta de mi blog tengo 24 entradas, pero solo me muestra 20 y no me sale el link de paginación para ver las 4 restantes.

¿Sabes que pueda estar pasando o si se ha perdido algún codigo?
Muchas gracias de antemano por tu respuesta y te envio un saludo cordial desde Bogotá, Colombia.
:)

Responder
JMiur  

Fíjate en esta entrada. Es una limitación en la cantidad de entradas por página que ha impuesto Blogger. Te aconsejo reducir esa cantidad para evitar el problema y ver si eso resuelve la forma en que funciona el script.

Responder
Felipe Calvo Cepeda  

Si, algo había escuchado al respecto; pero igual no crees que de igual forma debería mostrar el paginador, porque es extraño que solo pase con las etiquetas, en el resto del blog funciona perfecto.
Es más, acabo de hacer la prueba quitando el Script de las entradas expandibles, y dejando que blogger me muestre la cantidad de etiquetas que él quiere, así como yo controlandolas con un max-results, el bendito paginador no aparece por ningún lado.

No se JMiur, creo que es por la plantilla (el script quedó descartado), algún pedazo de código estará faltando o de pronto me falta algo en el CSS.
:S

Responder
JMiur  

No, el CSS nada tiene que ver con eso y los scripts de paginación jamás me convencieron; no funcionan correctamente en todos los casos y además, están limitados sólo a 500 entradas que es el máximo que puede contener un feed.

Responder
hwoarangdo  

JMiur me gustaría saber cómo dejas 1 post en una pagina individual como lo haces en este blog, en vez de q cada post salga uno tras otro, cómo se hace?

Responder
JMiur  

Es lo normal. Cada entrada es una página.

Lo que yo no entiendo es por qué me has hecho esta pregunta en varios comentarios, usando el formulario de contacto y enviando varios mails con nombres diferentes ¿No bastaba con hacer la pregunta una sola vez?

Responder
Unknown  

Muy interesante pero me gustaría consultarte una cosa, es posible limitar la navegación a una etiqueta en particular cuando se esta e la página principal.

Es que con el método llegaran a las entradas que tengo estáticas y esas no quiero que aparezcan, u otras qu, pero tampoco nada tienen que ver no son estaticas.

Se puede???

Responder
JMiur  

No. Estas instrucciones no sirven apra hacer eso y en Blogger, crear algo como lo que quieres es casi imposible o tan engorroso que n ocreo que valga la pena intentarlo.

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