Вывод в теме
Обновлено
Автоматический вывод
Выберите хук в настройке «Вывод по хуку». Плагин возвращает HTML в соответствующую часть frontend_product: cart, block или block_aux. Тема должна выводить эту часть хука.
Стандартный шаблон показывает блок «Прикрепленные файлы» со ссылками, именами и размерами. Если опубликованных файлов нет, блок не выводится.
Хелпер getFiles()
Метод getFiles($product_id) принимает ID товара и возвращает массив опубликованных файлов в порядке сортировки. При пустом или нулевом ID возвращается пустой массив. Метод получает данные, но сам не формирует HTML.
Пример для шаблона карточки товара, где доступен $product:
{if !empty($wa->shop->ewshoppattachPlugin->version())}
{$attached_files = $wa->shop->ewshoppattachPlugin->getFiles($product.id)}
{if !empty($attached_files)}
<ul class="product-attached-files">
{foreach $attached_files as $file}
<li>
<a href="{$file.url|escape}">{$file.name|escape}</a>
({$file.size|wa_format_file_size:'%0.2f':'Б,кБ,МБ,ГБ'})
</li>
{/foreach}
</ul>
{/if}
{/if}Если используете этот пример, выберите «Не выводить» для автоматического вывода, чтобы не получить два списка.
У метода один аргумент. Он всегда выбирает только опубликованные файлы: передавать вторым аргументом published или draft не нужно. Метод не учитывает общую настройку «Статус плагина».
Поля элемента массива
| Поле | Значение |
|---|---|
id |
ID записи файла |
product_id |
ID товара |
url |
Публичный URL файла |
name, original_filename |
Исходное имя загруженного файла |
filename |
Имя файла в хранилище с добавленным уникальным идентификатором |
size |
Размер в байтах |
ext |
Расширение |
status |
Статус; в результате хелпера — published |
sort |
Порядок сортировки |
upload_datetime |
Дата и время загрузки |
contact_id, contact_name |
ID и имя пользователя, загрузившего файл |
description |
Поле записи; при добавлении плагином не заполняется, формы редактирования нет |
Для публичного списка обычно достаточно url, name и size.
Переопределение шаблона автоматического вывода
Создайте в корне используемой темы приложения «Магазин» файл:
ewshoppattach_plugin.frontend_product.htmlЕсли этот файл существует в выбранной теме, плагин использует его вместо своего templates/actions/frontend/FrontendProduct.html.
В шаблон передаются:
| Переменная | Содержимое |
|---|---|
$files |
Опубликованные файлы текущего товара в порядке сортировки |
$files_hook |
Короткое имя выбранного хука: cart, block или block_aux |
Пример содержимого файла:
{if !empty($files)}
<div class="product-documents">
{if $files_hook == 'cart'}
<strong>Документы к товару</strong>
{/if}
<ul>
{foreach $files as $file}
<li><a href="{$file.url|escape}">{$file.name|escape}</a></li>
{/foreach}
</ul>
</div>
{/if}Такое переопределение действует на вывод по хуку. Разметка, написанная в теме вокруг вызова getFiles(), управляется самой темой.