Плагин позволяет приложить к каждому товару любое количество файлов и дать им описание. Список приложенных файлов с описаниями и ссылками на файлы будет доступен посетителям магазина на карточке товара в месте, предусмотренном темой дизайна для хука frontend_product.
Плагин удобно использовать для раздачи файлов, имеющих отношение к предлагаемому товару — драйверов, обновлений прошивок, инструкций и т.д.
Плагин также предоставляет методы хелпера для отображения списка файлов в любом другом месте шаблона или просто получения массива с информацией о файлах.
Показ списка файлов с помощью хука
Список файлов можно показать в месте, предусмотренном для хука frontend_product.block или frontend_product.block_aux на выбор. Выбрать можно в настройках плагина. Там же можно отредактировать шаблон, который будет показан. В шаблоне доступна переменная $attachments, представляющая из себя массив данных о прикрепленных файлах. Структура
$attachments = array(
array(
'id' => $id, /* ID записи */
'name' => $name, /* имя файла */
'ext' => $ext, /* расширение файла */
'description' => $desc /* описание файла */
'size' => $size, /* размер файла в байтах */
'url' => $url /* ссылка на файл */
),
);
Поддержка тем дизайна и нескольких витрин
Для показа блоков в хуках или по вызову хелпера плагин использует шаблон темы дизайна, который называется plugin.syrattach.attachments.html. Если такого шаблона в теме дизайна нет, то плагин может либо вообще ничего не показывать, либо использовать свой встроенный шаблон. Как поступать в случае, если в теме дизайна нет шаблона для плагина решать вам — настройка «Витрина без шаблона» позволяет указать, что делать в этой ситуации.
Для самой простой ситуации, сразу после установки плагина, с настройками по умолчанию, плагин будет работать на всех витринах, используя по возможности шаблон темы дизайна, а если его нет, то свой встроенный шаблон.
Если вам нужно настроить поведение для разных витрин, отключите использование шаблона по умолчанию, добавьте в нужные витрины шаблоны для плагина.
Встроенный хелпер
В плагин встроен хелпер, позволяющий получить массив файлов прикреплённых к товару или готовый html-код для вставки в произвольное место шаблона страницы товара.
Использование и методы хелпера
Для Shop-Script 8.17 и новее. В шаблонах тем дизайна современных версий Shop-Script хелпер плагина вызывается так (описания обязательных и необязательных параметров см. ниже):
{$wa->shop->syrattachPlugin->getList()}
— для вызова метода getList(){$wa->shop->syrattachPlugin->render()}
— для вызова метода render()
Такой формат вызова хелпера гарантирует работу вашего сайта, даже если вы решите отключить или удалить наш плагин, шаблоны, обращающиеся к хелперу менять не придётся.
Для устаревших версий Shop-Script. Методы хелпера вызываются так:
{syrattachPlugin::getList()}
— для вызова метода getList(){syrattachPlugin::render()}
— для вызова метода render()
Метод хелпера getList($product_id)
Используйте этот метод для получения списка приложенных к товару с указанным id файлов. Структура результата аналогична той, которая передаётся в шаблон (см. выше)
Параметры:
- int $product_id — id товара, для которого необходимо получить список приложенных файлов. Обязательный
Примеры:
получение списка файлов для товара с ID=905
{$files = $wa->shop->syrattachPlugin->getList(905)}
получение списка файлов в шаблоне карточки товара:
{$files = $wa->shop->syrattachPlugin->getList($product.id)}
Метод хелпера render($product_id, $force_on_empty)
Этот метод позволяет вывести отрендеренный шаблон со списком файлов, приложенных к товару с указанным ID в любом месте магазина. При рендере шаблона учитывается настройка отображения на витринах без шаблона, будьте внимательны.
Второй, необязательный, параметр задает поведение в случае, если у товара нет ни одного прикрепленного файла. По умолчанию в этом случае шаблон не обрабатывается
и хелпер возвращает пустую строку (чтобы не тратить время на парсинг шаблона). Если передать true, то шаблон будет обработан в любом случае.
Параметры:
- int $product_id — id товара, для которого необходимо получить список приложенных файлов. Обязательный
- bool $force_on_empty — нужно ли обрабатывать шаблон, если к товару не прикреплено ни одного файла. необязательный
Примеры:
отображение списка файлов для товара с ID=905
{$wa->shop->syrattachPlugin->render(905)}
отображение списка файлов в шаблоне карточки товара:
{$wa->shop->syrattachPlugin->render($product.id)}
Дублирующиеся имена файлов
Если попытаться прикрепить к товару файл с именем, которое уже принадлежит файлу также прикрепленному к этому же товару, то плагин будет пытаться переименовать загружаемый файл.
Импорт из CSV
При импорте данных о товарах из CSV можно сразу прикреплять файлы.
- Создайте на сервере, в файл-менеджере приложения Сайт (или еще как-нибудь), папку
wa-data/public/site/syrattach
- Загрузите в эту папку файлы, которые должны быть прикреплены к товарам
- В файле CSV, предназначенном для импорта, добавьте одну (или несколько) колонок «Прикрепленный файл».
- В строке с товаром укажите в этом столбце имя файла из папки
wa-data/public/site/syrattach
, который нужно прикрепить к этому товару
Внимание! Прикрепляемый файл должен быть строго в указанной папке. URL не поддерживаются. Указание вложенных папок тоже.
После завершения импорта файлы из папки wa-data/public/site/syrattach
можно удалять.
При импорте никакие файлы не удаляются. При повторном импорте, так же как при загрузке файла с дублирующемся именем, файлы с одинаковыми именами не перезаписываются, новый файл добавляется с измененным именем.