Динамични таблици на статичен сайт с Google Drive и малко PHP


8

Здравейте!

Наскоро един клиент поиска сам да редактира таблиците с цените на сайта си (ама да е по-простичко). Пък и на мен ми писна да се занимавам. За съжаление всички програми, сайтове и инструменти, които намерих експортират таблиците с малоумни инлайн стилове. Затова Реших да генерирам HTML код от CSV файл.

Докато търсих най-простата и подходяща програма за целта попаднах на доста интересна опция в Google Drive. Опцията "Publish to the web" дава възможността да се сложилинк за сваляне на документа в няколко формата. Така успях да изненадам клиента с нещо което наподобява CMS. Вместо да се качват таблиците през FTP (някой друг имал ли е проблеми с файлове на български?) направо ги взимам от линк.

Системата, която направих ми генерира възможно най-прост HTML код на таблиците без инлайн стилове. Поддържа и сливане на клетки. В крайна сметка ползвам .tsv формат (tab sepparated values). Сливането става като се сложи "h" или "v" след клетката, която искате да разширите.

Демо: http://www.jumpopress.com/spreadsheets-to-html-demo/

Сорс код: here

За да добавите нова таблица (ама не на моя сървър) следвайте тези стъпки:

  1. Създайте таблица в Google Dtive
  2. Създайте линк за сваляне:
    1. File=>Publish to the web.
    2. Изберете Publish и изберете подходящ формат (txt но като го запишеш се оказва tsv). Ако се смени сепаратора от таб на ; може да се ползва csv.
    3. Копирайте линка.
  3. Добавете таблицата в tables-map.php в следния формат: $path['име(без разширение)']='линк';
  4. Извикайте функцията printTable('име(без разширение)');

Не забравяйте да инклуднете csv2html.php

За да се появят промените в Google Drive на вашата страница трябва да му дадете Republish. Автоматичното публикуване не работи (или поне не бързо).

За да се зарежда страницата по-бързо файловете се свалят на сървъра. Затова се налага да има функция Refresh която изтрива старата таблица за да се свали новия вариант. В сорса има коментиран код за взимане на таблици директно от Google Drive.




Отговори



1

Важно!!!! Не кликайте "Try the new Google Sheets" защтото не предлага линк за сваляне на файл (само html страница и iframe). Ако все пак сбъркате това няма да повлияе на съществуващите таблици и можете да се върнете към старите таблици:

Не препоръчвам да ползвате google drive с тази система. Не знам дали и кога няма всичко да мине на новата система и дали ще имплементират липсващите възможности. Може да ползвате подобен clowd сървис, който предлага същата функционалност със същия код (само сменяте линковете). А може и да го модифицирате да парсва HTML. Във всички случаи имате опцията за експортиране на файловете и качването през ftp или да ползвате дефолтния iframe.

Очаквайте скоро да имплементирам някаква бекъп функционалност.

Може да им пратите един feedback ако искате.


от dany90 (1340 точки)


1
Update:
-Сливането на заглавни клетки () вече работи.
-Всички таблици вече се записват в директорията в която се намира csv2html.php независимо откъде e извиканo. Така могат да се обновяват всички таблици на целия сайт наведнъж.

от dany90 (1340 точки)