"CMS" basado en hojas de cálculo de Google para sitios estáticos



Cada vez más, para la historia de un evento / producto / servicio, las empresas crean sitios basados ​​en cualquier diseñador. Ya sea por su cuenta o atrayendo diseñadores y sin la participación de un programador. Los diseñadores modernos le permiten crear un sitio web genial, brillante y efectivo, pero estático. Cualquier cambio debe hacerse "bolígrafos en el editor" y volver a publicar la página. Pero, ¿qué sucede si los datos cambian con mucha frecuencia o si desea agregar un poco de automatización? Aquí es donde puede ayudar el lenguaje de consulta de tablas y gráficos de Google (y el programador está familiarizado).

Hace unos años, un amigo se me acercó y necesitaba agregar una lista de precios en un sitio recopilado en Tilda. Y todo estaría bien, hay un bloque de "tabla": complete los datos y publique, pero había dos condiciones:

  • los precios dependían del dólar y cambiaban casi todos los días
  • necesitaba un precio común y sus partes en las páginas de los grupos de productos

En consecuencia, mucha rutina y una alta probabilidad de discrepancias de datos. Era necesario automatizar.

Y la ayuda vino de Google Speadsheets. Creo que no tiene sentido describir los pros: el editor habitual, la colaboración, las fórmulas. Todo lo que necesitas es cambiar el tipo de cambio una vez al día. Todo lo que quedaba era la cuestión de cómo obtener datos de la tabla en el sitio. Y luego la API de Google Charts fue útil.
Permite utilizar la solicitud ajax para recibir datos en forma de jsonp.

La solicitud debe enviarse a la dirección " docs.google.com/a/google.com/spreadsheets/d/xxxxxx/gviz/tq?tq=yyyyyy "
donde:
xxxxxx: identificador de un enlace público a la tabla de Google
aaaaa: consulta SQL para recuperar datos de la tabla convertida (no olvide convertir todos los caracteres a entidades HTML como: seleccione% 20A% 2C% 20sum (B)% 20group% 20by% 20A).

Otro comentario, SQL es bastante familiar, excepto que está truncado (vea la documentación ), pero el bloque FROM está completamente cortado. Por lo tanto, debe escribir algo como "seleccione A, B donde C = 'f' y B <30 ordenados por B"

El script resultante llamará al método google.visualization.Query.setResponse (data).
El objeto de datos contiene los siguientes datos útiles:

{ status: "ok", //    table: { cols: [ //      0: { id: "A", label: "  ", type: "string" }, 1: { id: "B", label: "  B", type: "number" }, ... ], rows: [ //    0: { c: [ //      0: { v: "" //      } 1: { v: 3.1415, //      ""  f: "3,1415" //     } ] } ] } } 

Bueno, entonces haga lo que quiera con los datos: al menos insértelo en la tabla, al menos genere svg (utilizado para generar mapas en el esquema de una aldea suburbana señalando los gratuitos y vendidos), al menos reemplace los marcadores de posición en el texto: el vuelo de la fantasía es ilimitado.

Naturalmente, este método no es adecuado para sistemas altamente cargados, Google tiene un límite en la cantidad de solicitudes por día, pero hasta ahora no he podido encontrar ningún sitio desde el automatizado.

Y una pequeña pista al fin. La tabla en la que se realizan las consultas se debe compartir por referencia. Y si de repente necesita campos ocultos a la vista del público, entonces para esto hay una función conveniente en Hojas de cálculo de Google. Se llama IMPORTRANGE (clave., Rango) . La clave es un enlace a cualquier tabla a la que tenga acceso, y el rango es un grupo de celdas que desea mostrar. Es decir crea una tabla cerrada con un conjunto completo de datos y una tabla pública en la que importa solo los rangos de datos necesarios (todavía los va a mostrar en el sitio).

Source: https://habr.com/ru/post/es432740/


All Articles