Una de ellas es Google Docs, especialmente las llamadas planillas de cálculo (spreadsheets) ... y antes que quienes odien estas cosas o se hayan indigestado con la palabra cáculo huyan despavoridos, déjenme aclarar que quiero mostrar como usar una de esas planillas para crear una galería de imágenes aleatorias.
Entramos a Google Docs con nuestra cuenta de GMail y allí hacemos click en el menú New | Spreadsheet lo que nos abrirá una ventana con una hoja nueva que no es otra cosas que una grilla formada por columnas y filas; una hoja cuadriculada donde cada sector es una celda en la que podemos escribir algo. Lo primero que haremos es ponerle un nombre.
![]() | ![]() |
Sin demasiados problemas, hemos creado una base de datos, hiper-simple pero base de datos al fin.

Click en el botón SHARE que está arriba a la derecha y seleccionamos Publish as web page.

http://spreadsheets.google.com/feeds/list/RPd2ssiQhWQVretbgDHGOD/od6/public/basic?alt=rss

![]() | ![]() |
¿Cuál es su característica principal? Que, al publicarlas, obtenemos un feed y ese feed es accesible, podemos leerlo con JavaScript porque Google nos dice cómo hacerlo.
Vamos entonces a agregar un pequeño script en la plantilla del blog que leerá ese feed y usará los datos de las direcciones URL de las imágenes para crear una tabla donde mostraremos seis de ellas elegidas de manera aleatoria y que, en este caso, se abrirán con LightWindow.
Justo antes de </head> ponemos esto:
<script type='text/javascript'>
//<![CDATA[
planillaURL = new Array();
planillaTIT = new Array();
cantidadplanilla = 0;
function leerGDOCS(json) {
cantidadplanilla = json.feed.entry.length;
for(i=0; i<cantidadplanilla; i++) {
planillaURL[i] = json.feed.entry[i].gsx$imagen.$t;
planillaTIT[i] = json.feed.entry[i].gsx$titulo.$t;
}
}
function mostrarGDOCS(donde) {
var salida = "";
var max = cantidadplanilla-1;
var alea = Math.round(Math.random()*max);
var cual = alea;
var anchoTHUMB = 90; // el ancho de la miniatura
var altoTHUMB = 90; // el alto de la miniatura
salida += "<table class='demoGDOCS' cellspacing='5' cellpadding='0'>";
salida += "<tr>";
for (i=0; i<=5; i++) {
// cada miniatura es una celda de la tabla
salida += "<td align='center' valign='middle'>";
// si se usa otro modelo de ventana modal, debería cambiarse este enlace
salida += "<a class='lightwindow' rel='demoGDOCS[GDOCS]' href='" + planillaURL[cual] + "'>";
salida += "<img width='" + anchoTHUMB + "' height='" + altoTHUMB + "' src='" + planillaURL[cual] + "' />";
salida += "</a>";
salida += "</td>";
cual ++;
if(cual>max) { cual = 0; }
}
salida += "</tr>";
salida += "</table>";
document.getElementById(donde).innerHTML = salida;
}
//]]>
</script>
<script src='http://spreadsheets.google.com/feeds/list/_aquí_el_valor_de_nuestra_clave_/od6/public/values?alt=json-in-script&callback=leerGDOCS' type='text/javascript'/>
.demoGDOCS {
/* es la tabla en si misma */
}
.demoGDOCS td {
/* cada celda de la tabla */
}
.demoGDOCS td img {
/* las miniaturas */
}
<div id="unNombreUNICO"></div>
<script>mostrarGDOCS('unNombreUNICO');</script>
Otra variante donde se lee otro dato más, un texto para cada imagen:
0 comentarios:
Publicar un comentario