Cms google: «CMS» на базе Google Spreadsheets для статических сайтов / Хабр

Содержание

«CMS» на базе Google Spreadsheets для статических сайтов / Хабр

Все чаще для рассказа о мероприятии/товаре/услуге компании создают сайты на базе каких либо конструкторов. Либо своими силами, либо привлекая дизайнеров и без участия программиста. Современные конструкторы позволяют собрать классный, яркий, эффектный сайт, но статичный. Любые изменения нужно вносить «ручками в редакторе» и перепубликовать страницу. Но что делать, если данные меняются очень часто или хочется добавить немного автоматизации — вот тут и могут помочь Гугл Таблицы и Charts Query Language (и знакомы программист).


Несколько лет назад ко мне обратился один приятель которому потребовалось на сайте собранном на Тильде добавить прайс лист. И все бы ничего, есть блок «таблица» — забивай данные и публикуй, но были два условия:

  • цены зависили от курса доллара и менялись почти каждый день
  • нужен был общий прайс и его части на страницах групп товаров


Соответственно куча рутины и высокая вероятность расхождения данных. Нужно было автоматизировать.

И помощь пришла со стороны Google Speadsheets. Думаю нет смысла описывать плюсы: привычный редактор, совместная работа, формулы. Все что нужно это менять один раз в день курс валюты. Оставался только вопрос как получить данные из таблицы на сайте. А тут пригодился API Google Charts.

Он позволяет при помощи ajax запроса получить данные в виде jsonp.

Запрос нужно отправлять по адресу «docs.google.com/a/google.com/spreadsheets/d/xxxxxx/gviz/tq?tq=yyyyyy»

где:

xxxxxx — идентификатор из общедоступной ссылки на гугл таблицу

yyyyyy — SQL-запрос для получения данных из таблицы преобразованный (не забудьте преобразовать все символы в HTML entities типа: select%20A%2C%20sum(B)%20group%20by%20A).

Еще одно замечание, SQL вполне привычный разве что урезанный (см. документацию), но из него полностью вырезан блок FROM. Так что нужно писать что-то типа «select A, B where C=’f’ and B<30 order by B»

Полученный в ответ скрипт вызовет метод google. visualization.Query.setResponse(data).

Объект data содержит следующие полезные данные:

{
  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" // есть еще и форматированное
          }
        ]
      }
    ]  
  }
}


Ну, а дальше делайте с данными что хотите: хоть вставляйте в таблицу, хоть генерируйте svg (использовал для генерации карты на схеме загородного поселка отмечая свободные и проданые), хоть заменяйте плейсхолдеры в тексте — полет фантазии безграничный.

Естественно такой способ не подойдет для высоконагруженных систем, гугл имеет ограничение на количество запросов в день, но пока ни одному сайту из автоматизированных мной не удалось его выяснить.

И маленькая подсказка на последок. Таблица к которой делаются запросы должна быть расшарена по ссылке. А если вдруг будут нужны поля скрытые от общих глаз, то для этого есть удобная функция в Google Таблицы. Называется она IMPORTRANGE(ключ., диапазон). В качестве ключа выступает ссылка на любую таблицу к которой у вас есть доступ, а диапазон это группа ячеек которые нужно показать. Т.е. вы делаете закрытую таблицу с полным набором данных и публичную таблицу в которую импортируете только нужные диапазоны данных (вы же их все равно собрались показывать на сайте).

Как эффективно использовать Google Trends

Как эффективно использовать Google Trends — информация на сайте umi-cms.ru

+7 (812) 309-03-15
Все контакты

0

Разделы сайта

Статьи

Отправить запросОбновленияVIP-ЗаботаУсловияВыбор хостингаСтатьи

Google Trends — это онлайн-сервис, который анализирует статистику поисковых запросов на площадках Google и показывает интерес пользователей к какой-либо теме, услуге или товару. На первый взгляд, в работе с этим сервисом всё просто: выбираете интересующий вас запрос и проверяете его через этот сервис. Однако, это лишь верхушка умений Google Trends. В статье мы расскажем, как использовать все возможности этого web-приложения для продвижения своего ресурса.

Операторы

Операторы применяются как при вводе запроса в поиск, так и в Google Trends. Выделим несколько видов:

  • «» — помещайте фразу в кавычки, если принципиален четкий порядок слов и исключение похожих ключевых фраз. 
  • — — знак минуса исключает ненужные слова. Например, мы хотим узнать результат по фразе «купить кастрюлю», но нас не интересует чугунная посуда. В этом случае запрос выглядит так: «купить кастрюлю -чугунная».
  • + — знак плюса включает в статистику слова-синонимы и фразы с ошибками. Например, «компьютер+комп+кампьютер».

    Фильтры

    Фильтры помогают сделать запрос более точным. В Google Trends есть следующие фильтры:

    • Регион. Выбирайте страну, город или область, которая вас интересует. Сервис будет учитывать статистику исключительно этого региона.

    • Время. Статистика по запросу за год, месяц, неделю и даже за последний час. 

    • Категория. Уточняет тематику запроса. 

    • Источник данных.

    Показатели сезонности

    В Google Trends определить сезонность товара не составит труда, ведь информация подается в виде графиков и диаграмм. На графике отчетливо видно, в какое время года товар пользуется большим спросом.

    Сравнение  

    Google Trends позволяет сравнить популярность запросов между собой. Эта информация также отображается в виде графика, сравнение помогает проследить динамику популярности запроса.  

    Наиболее перспективные регионы для бизнеса

    Задумываетесь об открытии филиала в другом городе? Тогда используйте раздел «Популярность по субрегионам». Он позволяет проанализировать, в каком регионе тематика вашего бизнеса интересна и востребована людьми. 

    Похожие запросы

    Google Trends ― отличный помощник при работе с семантическим ядром сайта. Воспользуйтесь блоком «Похожие запросы» и расширяйте список ключевых фраз. Запросы разделяются на самые популярные (лидеры) и набирающие популярность (в тренде). 

    Продвижение в YouTube

    Возможность смотреть статистику запросов, выбрав YouTube источником данных, помогает понять, какая тема популярна на просторе самого большого видеохостинга. Эта информация поможет выбрать правильную тему видео, которое станет просматриваемым и принесет популярность вашему бизнесу. 

    Разработка контент-плана

    Продажи в интернете носят цикличный характер. Google Trends помогает проанализировать сезонные трендовые темы и заранее учесть их в составлении контент-плана компании. Проделав эту работу, вы заранее подготовите почву для поступления трафика на свой ресурс. 

    Google Trends — один из основных инструментов маркетолога, он помогает понять популярность того или иного запроса, проанализировать тренды, сравнить несколько ключевых фраз и узнать какая из них эффективнее. Пользуйтесь всеми возможностями Google Trends и развивайте свой бизнес в интернете вместе с UMI.CMS. 

    Твитнуть

    Комментарии ВКонтакте

    Создайте импровизированную систему управления контентом (CMS) с помощью Google Sheets

    Несколько раз за последний год я сталкивался с необходимостью предоставить клиенту гибко настраиваемую, но недолговечную систему управления контентом (CMS). В каждом случае после создания исходной функции ожидалось преднамеренное, но нечастое обновление содержимого. Из-за такой скаффолдной природы решение должно было быть недорогим, что исключало разработку полностью заказного программного обеспечения. Использование поставщика CMS также было неуместным из-за характера контента и того, как он будет меняться. Я подумал про себя, какие еще есть варианты?

    Apps Script Plus Google Sheets

    Это напомнило мне о некоторой работе, которую я проделал в прошлом, чтобы увеличить большую, насыщенную данными таблицу Google. Я смог добавить новый пользовательский интерфейс и расширенную фильтрацию с помощью так называемого Google Apps Script. Apps Script — это «облачная платформа JavaScript, которая позволяет интегрировать и автоматизировать задачи в продуктах Google».

    Оказывается, Apps Script в сочетании с Google Sheet также является идеальным инструментом для той работы, о которой я упоминал выше. При таком подходе вы можете создать простое, дешевое, но мощное решение, похожее на CMS, практически в кратчайшие сроки. Вот краткое описание того, как мы все настроили.

    Мы создали таблицу Google с некоторыми содержательными заголовками и добавили ряды данных. Затем мы написали пару функций в App Script, которые позволили бы нам создать объект JSON из данных электронной таблицы. Мы также добавили пункт меню, который позволил бы нам удобно экспортировать объект JSON всего за пару кликов. Когда мы были готовы, мы экспортировали JSON и поместили файл в кодовую базу. Любой, у кого есть доступ, может продолжать изменять Google Sheet. Когда они будут готовы, они смогут снова экспортировать данные.

    Мы обнаружили, что при определенных обстоятельствах это действительно полезный способ обеспечить большую ценность за небольшой промежуток времени. Как и любое решение, оно не лишено своих плюсов и минусов.

    Pros

    Low Cost

    Разработка пользовательской CMS или интеграция с поставщиком автоматизированной CMS просто не так экономичны, как использование электронных таблиц. Не обращая внимания на цену любого готового решения CMS, стоимость подхода с электронными таблицами значительно меньше, чем разработка специального программного обеспечения или интеграция со сторонней CMS.

    Совместная работа и совместное использование

    Google Sheets поддерживает редактирование и совместную работу в реальном времени для всей команды. Управление доступом так же просто, как изменение разрешений на доступ к электронной таблице.

    Короткая кривая обучения

    Если пользователи немного знакомы с инструментами для работы с электронными таблицами, этот подход обеспечивает низкий порог входа.

    Простота моделирования данных

    Интерфейс буквально представляет собой таблицу, что упрощает моделирование любых табличных данных.

    Гибкая интеграция

    Существует множество подходов к подключению электронной таблицы к вашему приложению. Как описано выше, один из вариантов — экспортировать данные из электронной таблицы и поместить их в кодовую базу. Более сложный подход может включать использование API Google Диска для получения последних данных напрямую через скрипт.

    Поддерживает работу с электронными таблицами

    В вашем распоряжении все стандартные формулы электронных таблиц, такие как «СУММ» или «СЧЁТ». В качестве бонуса вы даже можете писать собственные формулы в Apps Script, которые можно использовать вместе со стандартными формулами Google Sheet.

    Минусы

    Управление версиями

    Поддержание версий в Таблицах может быть сложной задачей. Управление версиями предоставляется из коробки. Но версии, идентифицированные Google, скорее всего, не будут логически сопоставляться напрямую с версиями вашего приложения. Однако вы можете вручную назвать версии, которых может быть достаточно в зависимости от варианта использования.

    Поддержка динамического содержимого

    Конечно, приложение может извлекать данные из Google Sheets по мере необходимости. Однако такой подход вызывает некоторые опасения. Как часто приложение должно получать данные из электронной таблицы? Что произойдет, если кто-то по ошибке изменит значения по незнанию или изменит структуру?

    Чтобы избежать некоторой неопределенности, я предпочитаю использовать листы для создания статического содержимого, которое можно связать с приложением.

    Сложные отношения

    Попытка смоделировать сложные отношения в электронной таблице может оказаться сложной задачей. Попытка зафиксировать эти отношения может свести к минимуму ценность этого подхода к работе с электронными таблицами до такой степени, что настоящая CMS обеспечит большую ценность.


    Как консультанты, мы постоянно ищем способы предоставить нашим клиентам максимальную ценность. Эта ценность часто проявляется в виде хорошо спроектированных пользовательских приложений или рекомендаций, подкрепленных многолетним опытом. Однако иногда мы можем принести большую пользу, просто найдя идеальный инструмент для работы.

    Как мы перенесли Sites CMS на Google Cloud Platform

    Inge Russenes

    Все мы слышали о знаменитой концепции «переноса в облако», а для многих — о концепции переноса вещей из собственного офиса или хостинг-центра и в это «облако» кажутся устрашающими. В этой статье я расскажу, как мы сделали это для одного из наших приложений, приложения Legacy Monolithic CMS, работающего на PHP с Laravel и использующего базу данных PostgreSQL. Это приложение использовалось в качестве основы для реализации нескольких клиентских проектов различной сложности с многочисленными интеграциями со сторонними сервисами и содержит тысячи строк кода.

     

    Мы начали с изучения того, какие преимущества мы получим и с какими потенциальными проблемами мы можем столкнуться при перемещении этого приложения в облако. Мы оценили несколько различных вариантов: от «просто» подъема и переноса до использования различных вариантов инфраструктуры GCP до преобразования приложения в полностью облачное. Мы решили внести минимальные изменения в само приложение и лишь внести небольшие структурные изменения.

    Что касается версии, единственное, что нам нужно было обновить, — это базу данных postgreSQL, чтобы иметь возможность использовать Google Cloud SQL в качестве размещенной базы данных вместо локального сервера базы данных postgreSQL и освободить себя от операций управления базой данных. Google Cloud SQL — это полностью управляемая служба базы данных на платформе Google Cloud, которая поддерживает как MySQL, так и PostgreSQL. Поскольку мы использовали некоторые функции и расширения, которые не поддерживались в Google Cloud SQL, нам нужно было переписать их на поддерживаемый стандартный язык. Благодаря более новой версии Postgres мы могли легко сделать это с новой функциональностью, включенной в эту версию.

    После рассмотрения последствий использования облака по сравнению с полностью размещенной локальной средой, единственными изменениями, которые нам нужно было сделать, были изменения в базе данных для поддержки Google Cloud SQL и изменения в маршрутизации почты для использования Mailgun для отправки почты из Google Cloud Platform. Отправка почты с облачной платформы Google на порт 25 не разрешена, так как этот порт всегда заблокирован в GCP.

    Мы также увидели некоторые потенциальные будущие улучшения в разделении монолитного приложения на микросервисы, использовании Google Cloud Load Balancer и перемещении приложения в кластер Kubernetes, но это выходило за рамки нашего проекта.

    Мы решили перенести текущую виртуальную машину в Google Cloud Compute Engine, что, вкратце, означает репликацию виртуальной машины (включая некоторые необходимые изменения в конфигурации сети). Затем мы перенесли базы данных в Cloud SQL. «Подъем и сдвиг» был выполнен упорядоченно и прошел без каких-либо проблем, и мы смогли запустить наше приложение Sites CMS на GCP для тестирования в течение нескольких часов, используя локальный сервер базы данных postgreSQL, расположенный на той же виртуальной машине, что и так было всегда. Мы изменили конфигурации, чтобы можно было использовать Mailgun, и провели некоторое тестирование CMS, размещение страниц и тестирование производительности приложения.

    Проведя все испытания и первоначальные настройки, мы подготовили базу данных postgreSQL к переносу в Google Cloud SQL. Мы переписали необходимые функции SQL, создали наш экземпляр Google Cloud SQL и импортировали базу данных в облачный экземпляр. После настройки необходимых параметров безопасности, позволяющих нашему приложению взаимодействовать с экземпляром Google Cloud SQL, мы начали с тестирования полного решения, переключив один из наших сайтов разработки на использование нового экземпляра Cloud. После интенсивного тестирования функциональности мы решили сначала перенести наши сайты разработчиков на Google Cloud Platform, а затем переместить соответствующие рабочие сайты после подтверждения успешного переноса разработки.

    Постепенно мы перенесли сайты, один за другим, на решение GCP, без простоя веб-сайтов. Единственное, что было затронуто, это то, что любые статьи, опубликованные в период между снятием дампа базы данных и переключением на новое решение, должны были быть повторно опубликованы после развертывания нового решения. Это было деловое решение, основанное на соотношении затрат и выгод, и при необходимости мы могли бы разработать решение для переезда без простоев.

    Мы перешли от 6 серверов, на которых размещены сайты (от разработки до производства), в разных версиях, всего к 2 серверам, размещенным в Google Cloud, и двум экземплярам Google Cloud SQL. Никаких изменений в коде прикладного уровня не требовалось. После этого шага разработчики начали использовать функции Cloud Native, такие как Pub Sub, в приложениях.