GoogleSheets. Обновление компонента 1.2.0

Возможности:


  1. Импорт ресурсов/товаров
  2. Экспорт ресурсов/товаров/заказов/пользователей
  3. Сохранение данных с форм
  4. Сохранение заказов
  5. Вывод данных из гугл таблицы на сайт.
Внимание!
Компонент пока не умеет работать с мультикатегориями и галереей для товаров при импорте и экспорте.
Будет исправлено при следующем обновлении!


1. Импорт.


  • Переходим в верхнее меню Приложения -> GoogleSheets
  • Жмакаем на создать импорт.
  • Заполняем все поля:
  • URL таблицы
  • Лист таблицы (название листа таблицы, можно указывать диапазон)
  • Тип ресурса: (modResource(ресурсы) || msProduct(товары))
  • Поля импорта (для пропуска поля оставить пустое значение или слово ignore)
  • Уникальное поле, по которому будет проверяется ресурс*
  • Настройка импорта:
    • Default (создает новые ресурсы и обновляет существующие)
    • Create (только создает новые ресурсы)
    • Update (только обновляет ресурсы)
  • Жмакаем правой кнопкой на необходимой строке (импорте) или на соответствующей иконке и импортируем данные** .
Удаление ресурсов
При клике на кнопку «Удалить данные» удаляются*** только те ресурсы, которые соответствуют ресурсам в таблице.

* Если уникальное поле не было создано в таблице, значит будет создан новый ресурс. Но если ресурс с таким названием уже есть, то ресурс не будет создан.
** Первая строка в таблице не импортируется.
*** На самом деле ресурсы помечаются как удаленные.

2. Экспорт


  • Переходим в верхнее меню Приложения -> GoogleSheets
  • Переходим во вкладку Export
  • Жмакаем на создать экспорт
  • Заполняем все поля:
    • URL таблицы
    • Лист таблицы (название листа таблицы, можно указывать диапазон)
    • Тип ресурса: (modResource(ресурсы) || msProduct(товары) || msOrder(заказы minishop2) || modUser(пользователи) )
    • Поля импорта (для пропуска поля оставить пустое значение или слово ignore)
    • Настройка экспорта:
      • Append (добавляет новые данные к старым)
      • Update (стирает все данные и записывает новые)
  • Жмакаем правой кнопкой на необходимой строке (экспорта) или на соответствующей иконке и экспортируем данные .

3. Сохранение данных с форм


  • Добавляем хук GoogleSheetsSaveForm
  • Добавляем параметр formFields = список полей, которые нужно сохранить, через запятую.
  • Указываем таблицу, куда будем сохранять данные:
    • Добавляем адрес(url) таблицы в системную настройку googlesheets_form_table или в параметр googleSheetsUri сниппета AjaxForm(FormIt).
    • Добавляем название листа таблицы в системную настройку googlesheets_form_range или в параметр googleSheetsRange сниппета AjaxForm(FormIt).
  • Заполняем системную настройку googlesheets_form_fields — список полей, которые находятся в гугл таблице, по порядку и через запятую. Для пропуска поля в таблице использовать слово ignore или пустое значение

Примеры:
{'!AjaxForm' | snippet: [
    'hooks' => 'spam,email,GoogleSheetsSaveForm',
    'formFields' => 'name,email,message',
    'form' => 'tpl.AjaxForm.example'
]}
Будут сохранены поля name, email, message в таблицу, которая указанная в системной настройке googlesheets_form_table в лист, который указан в системной настройке googlesheets_form_range

{'!AjaxForm' | snippet: [
    'hooks' => 'spam,email,GoogleSheetsSaveForm',
    'formFields' => 'name,email,message',
    'googleSheetsRange' => 'DataForm',
    'form' => 'tpl.AjaxForm.example'
]}
Будут сохранены поля name, email, message в таблицу, которая указанная в системной настройке googlesheets_form_table в лист, который указан в параметре googleSheetsRange.

{'!AjaxForm' | snippet: [
    'hooks' => 'spam,email,GoogleSheetsSaveForm',
    'formFields' => 'name,email,message',
    'googleSheetsUri' => 'https://docs.google.com/spreadsheets/d/16eyRFL94Dtqm30lBXVIpKGbw/edit#gid=0',
    'googleSheetsRange' => 'DataForm',
    'form' => 'tpl.AjaxForm.example'
]}
Будут сохранены поля name, email, message в таблицу, которая указанная в параметре googleSheetsUri в лист, который указан в параметре googleSheetsRange.

4. Сохранение заказов.


Переходим в системные настройки компонента.
  • googlesheets_order_save = Да/Нет(сохранять заказы или нет)
  • googlesheets_order_table = ссылка таблицы, в которую будем сохранять заказы
  • googlesheets_order_range = лист таблицы
  • googlesheets_order_fields = список полей для сохранения, через запятую. Сохраняется по порядку. Для пропуска поля в таблице использовать слово ignore или пустое значение.
Возможные значения googlesheets_order_fields:
id, num, cart_cost, cost, weight, delivery, delivery_cost, payment, createdon, receiver, email, phone, index, region, city, street, building, room, comment, user, user_id, properties

Свои поля в форме заказа.
Если вы добавили свои поля по инструкции, то значение каждого поля будет выводиться в новой ячейке.
Пример:
Вы добавили 3 поля в форме заказа: extfld_type, extfld_org, extfld_inn
В системной настройке записали 3 поля для сохранения
googlesheets_order_fields = receiver,email,properties
В таблицу будет сохранено 5 полей(каждое поле в новой ячейке):
receiver, email, extfld_type, extfld_org, extfld_inn

Сохранение товаров
Можно в отдельную ячейку добавить список значений товаров, через запятую, которые принадлежат текущему заказу. Для этого нужно добавить перед названием необходимого поля = products. (c точкой)
Примеры:
products.pagetitle = сохранит название товаров
products.id = сохранит идентификаторы товаров
products.alias = сохранит алиасы товаров
В системной настройке это выглядит так:
googlesheets_order_fields = receiver,email,products.pagetitle,products.id,products.alias,properties

5. Вывод данных.


Для вывода данных из таблицы используется сниппет GoogleSheets
Параметры сниппета:
  • table = url таблицы, с которой нужно получить данные
  • range = название листа таблицы, также можно добавить диапазон ячеек для выборки (!A1:J10);
  • tpl = чанк для вывода результатов*
  • fileds = название переменных, через запятую**
  • ignore = список номеров строк, которые нужно пропустить. (начинаются с 1)
* Если параметр tpl пустой, то будет выведен массив результатов.
** По умолчанию название переменных = ячейкам первой строке таблицы.
Примеры:
{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16AXIj1Dw0Cnx0neYHavZUuuDDmDMNkp8/edit#gid=0',
    'range' => 'Manhattan!A1:J10'
]}
Будет выбраны данные ячеек A1:J20 листа Manhattan из таблицы указной в параметре table.
Выводит массив результатов.

{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16AXIj1Dw0Cnx0neYHavZUWGuuDDmDMNkp8/edit#gid=0',
    'range' => 'Manhattan'
    'ignore' => '1',
    'tpl' => '@INLINE <li>{$name} - {$email}</li>'
]}

Будет выбраны данные все данные(кроме 1 строки), листа Manhattan из таблицы указной в параметре table.
Переменные name и email должны быть в первой строке таблицы.

{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16AXIj1Dw0Cnx0nI08nUDMNkp8/edit#gid=0',
    'range' => 'Manhattan'
    'ignore' => '1',
    'fields' => 'name,phone',
    'tpl' => '@INLINE <li>{$name} - {$phone}</li>'
]}
Присваиваем свои переменные для ячеек.
Первая ячейка будет соответствовать переменной name, вторая — phone

В компоненте присутствует модификатор table для преобразования массива в таблицу.
Пример:
{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16AXIj1Dw0Cnx0neYHavZUmWJuDDmDMNkp8/edit#gid=0',
    'range' => 'Manhattan'
] | table: 'table table-hover'}
Данные будет оформлены в таблицу с классами table tabe-hover.

Ссылка на компонент
Aleksandr Huz
04 декабря 2018, 15:12
modx.pro
2
1 220
+7
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0