GoogleSheets. Обновление компонента 1.2.0
Возможности:
- Импорт ресурсов/товаров
- Экспорт ресурсов/товаров/заказов/пользователей
- Сохранение данных с форм
- Сохранение заказов
- Вывод данных из гугл таблицы на сайт.
Внимание!
Компонент пока не умеет работать с мультикатегориями и галереей для товаров при импорте и экспорте.
Будет исправлено при следующем обновлении!
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 или пустое значение.
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.Ссылка на компонент
Поблагодарить автора
Отправить деньги