К содержимому
Вывод в теме

Вывод в теме

Обновлено

Автоматический вывод

Выберите хук в настройке «Вывод по хуку». Плагин возвращает 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(), управляется самой темой.