Almacenar y recuperar datos Blogger. Variables DATA (2) | Oloblogger Viene de Almacenar y recuperar datos Blogger. Variables DATA (1 ). Cada tipo de dato va en una data distinta y así el navegador puede ir ...

19 de enero de 2012

Almacenar y recuperar datos Blogger. Variables DATA (2)

Viene de Almacenar y recuperar datos Blogger. Variables DATA (1).

Cada tipo de dato va en una data distinta y así el navegador puede ir dibujando nuestra página con ellos. Un dato único es el nombre del blog (data:blog.title), pero ¿cómo se gestionan los que almacenan diversos datos como por ejemplo data:post.title que sirve para conseguir los títulos de todos y cada uno de los posts?

Pues para distinguir elementos homogéneos, por ejemplo una fecha de un post de la fecha de otro post, cada entrada tiene asignada automáticamente un número distinto (id, identificación) que va asociado a cada petición. Así, cuando pida de la correspondiente tabla de la base de datos un título de un post y además indique de qué post se trata (con la id), inequívocamente tendremos justo el título que se necesita.


Nos falta ver qué utilidad tiene saber esto, pero si a estas alturas lo tengo que explicar....

Como la relación de etiquetas es extensísima (pensad que TODO se guarda en ellas), a continuación sólo relaciono algunas de las variables que más se usan en las modificaciones de plantilla, así las tenemos más a mano:

GLOBALES

data:blog.title: Título del blog
data:blog.pageType: Tipo de página. item, archive o index.
data:blog.url: La dirección de la página en la que se está.
data:blog.homepageUrl: La dirección Home del blog.

CABECERA

data:title: El título (nombre) del blog
data:description: La descripción del blog

POSTS

data:olderPageUrl: Dirección para navegar hacia entradas más antiguas
data:olderPageTitle: El texto del enlace hacia entradas más antiguas
data:newerPageUrl: Dirección para navegar hacia entradas más recientes
data:newerPageTitle: El texto del enlace hacia entradas más recientes
data:commentLabel: El texto a usar para los comentarios. Ej: Opiniones

data:post.dateHeader: La fecha de cada post
data:post.id: La identificación numérica de cada entrada
data:post.title: El título del post
data:post.body: Todo el contenido del post, excepto fecha y título.
data:post.url: Dirección de cada entrada

data:post.labels: Las etiquetas de cada post. Hay que extraerlas con un bucle.
data:post.comments: Los comentarios asociados a cada post
data:post.numComments: Número de comentarios de un post

Ahora que has visto estas ¿está más claro? No. Pues el tema es que si necesitamos por ejemplo mostrar el número de comentarios en una portada a la que le hemos quitado cosas para que parezcan sumarios y no nos muestra ese número, sólo tendremos que añadir un <data:post.numComments/> dónde queremos que se vea.

O bien, podemos replicar el código de data:olderPageUrl y data:newerPageUrl para que existan dos bloques de enlaces de navegación por antiguos/recientes en nuestro blog. Actualmente yo tengo tres de estos, uno en la cabecera del post, en su pie y en el footer.

Otra utilidad es poder reconocer qué variable tengo que quitar para poder personalizar algo con mi propio texto o código. Por ejemplo, data:post.jumpText contiene el texto que se muestra cuando existe un "leer más" en el post, pero si no quiero usar el de la variable, sólo tengo que buscarla en el código y luego sustituirla entera por la palabra "Más" o "¿Quieres ver el artículo completo?" o lo que nos plazca. Igual podríamos hacer con partes más complejas.


Este es otro tipo de DATA
Si alguien quiere ver más sobre etiquetas data, en esta página de la ayuda de Blogger viene una lista bastante completa. Falta todo lo que se ha ido incorporando después de su publicación (2010), que ha sido mucho, pero creo que está lo más importante.

Por ejemplo, faltan aquellas que usamos para hacer sumarios sin javascript y que contenían una miniatura de imagen de cada post (data:post.thumbnailUrl), así como la otra que nos proporcionaba un pequeño resumen de texto (data:post.snippet).

Pero en cierta manera es fácil reconocerlas con una plantilla de pruebas: quitamos una cuyo contenido desconozcamos, nos fijamos en qué cosa desaparece y ¡voilá!. Es un sistema rudimentario, pero mientras Blogger no se digne a explicar con más detalle estas cosas, es la única solución que se me ocurre.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

8 comentarios :

  1. Hola Oloman...!
    Veo que este post es antiguo... pero te preguntaré por si puedes ayudarme.

    Mi problema es en el widget de Entradas Populares. Intento mostrar mas datos en el bucle aparte de el titulo, la imagen, y el snippet.
    Ya desistí de meter el número de visitas, no encontré nada por ningún sitio. Creí que sería fácil meter el número de comentarios, simplemente metiendo "data:numComents" en el sitio adecuado del bucle... pero no muestra nada.
    Si pongo "data:blog.title" si que muestra el título del blog, pero si intento poner la fecha, numero de comentarios, o la ID del post... no los muestra. Según he leido por ahí (y en tu blog) hay algunas variables que no se pueden leer desde cualquier sitio, tiene que ser dentro de un b:includable con una id específica... o algo así... pero no acabo de pillarlo del todo.

    Mi pregunta,
    ¿Hay alguna manera de mostrar el número de comentarios en el widget de Entradas Populares...?
    Y si no la hay...
    ¿Se puede mostrar más datos aparte de los tres que te mencioné antes...? (pero datos de cada post, como la fecha, o las etiquetas dentro de un bucle, no me sirven datos "globales" como el titulo o la descripción del blog).

    Muchas gracias de antemano...!
    Un saludo!
    Aupa!

    ResponderEliminar
    Respuestas
    1. Hola. Efectivamente algunas variables DATA son "locales" y sólo funcionan dentro de ciertas zonas de la plantilla. Esos que dices van asociados a las entradas y sólo funcionan dentro del bucle que generan las mismas. Sin embargo, los gadgets van fuera de esa zona y por tanto sólo te funcionarán ahí las DATA globales. No creo que hay forma de salvar eso.

      Aquí tienes una lista de variables DATA con indicación del gadget dónde se pueden usar.

      Eliminar
    2. Muchas gracias Oloman...!
      Al final he conseguido meter las etiquetas en un plugin de Entradas Recientes... no era lo que quería pero algo es algo. De todas formas me despista un poco que en algunos plugins se pueda y en otros no...

      Un saludo!
      Aupa!

      Eliminar
  2. Hola Oloman!
    Espero que puedas ayudarme, estoy creando una plantilla desde 0 para mi Blog y quisiera saber si es posible, que en una página estática, se vean ciertos post. Es decir, que una static_page se comporte como una index pero que se filtren los items por sus labels para que sólo aparezcan los que me interesan.

    El resultado final quisiera que fuese el contenido de la página estática y después algunos items.
    Gracias de antemano
    Saludos!

    ResponderEliminar
    Respuestas
    1. Hola. Tal cual lo has expresado no se puede hacer. No se pueden mostrar en una página estática entradas como si estuviéramos en portada o páginas de navegación.

      Sin embargo, en un página estática si puedes incluir un índice y luego filtrar ciertas etiquetas para que no se muestren en ese índice.

      Si entiendes un poco de JavaScript, aquí tienes una base de la que partir.

      Saludos

      Eliminar
    2. Hace un par de días se me ocurrió hacerlo desde la página estática con un iframe, pero al no tener tiempo no he podido meterme con ello, aunque ahora me alegro porque me gusta mucho más tu solución (aunque sea más compleja me da más juego).

      Una pregunta más, conoces si existe alguna etiqueta que me de la primera imagen del post?

      Gracias por todo.
      Saludos!

      Eliminar
    3. Sí claro: data:post.firstImageUrl
      Pero sólo la puedes usar dentro de la plantilla, no dentro de una entrada o página.

      Eliminar
    4. Perfecto, era justo lo que buscaba.
      Muchas gracias

      Eliminar