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

Вывод в теме

Обновлено

Автоматический вывод через хук

В общих настройках включите «Статус плагина», выберите frontend_category в «Вывод по хуку» и сохраните настройки.

Плагин возвращает готовую разметку для текущей категории. Место её появления зависит от того, где активная тема выводит результат frontend_category. Если тема не выводит этот хук, используйте хелпер.

Стандартный шаблон выводит ссылки с изображениями в гибком блоке с переносом строк. Отдельного заголовка у блока нет.

Готовая разметка: render()

В шаблоне категории:

{if !empty($wa->shop->ewshopclinksPlugin->version())}
    {$wa->shop->ewshopclinksPlugin->render()}
{/if}

Без аргумента метод ищет ID в параметре маршрута category_id, затем в переменной шаблона $category['id']. Если ID не найден, возвращает пустую строку.

С явным ID текущей категории:

{if !empty($wa->shop->ewshopclinksPlugin->version())}
    {$wa->shop->ewshopclinksPlugin->render($category['id'])}
{/if}

В другом шаблоне можно передать ID нужной категории. Число 123 в примере замените реальным ID:

{if !empty($wa->shop->ewshopclinksPlugin->version())}
    {$wa->shop->ewshopclinksPlugin->render(123)}
{/if}

render() учитывает «Статус плагина» и возвращает пустую строку при выключенном статусе, нулевом ID или отсутствии ссылок. Настройка «Вывод по хуку» на него не влияет.

При размещении хелпера вместо автоматического вывода установите «Вывод по хуку» → «Не выводить», иначе при наличии хука в теме список может появиться дважды.

Собственный шаблон для хука и render()

Создайте в корне активной темы приложения «Магазин» файл:

ewshopclinks_plugin.frontend_category.html

Если файл существует в активной теме, плагин использует его вместо стандартного templates/actions/frontend/frontendCategory.html. Это действует и для хука, и для render().

В файле доступен массив $links. Пример содержимого:

{if !empty($links)}
    <ul class="category-quick-links">
        {foreach $links as $link}
            <li>
                <a href="{$link['link']|escape}">
                    {if !empty($link['image']['url'])}
                        <img src="{$link['image']['url']|escape}"
                             alt="{$link['title']|escape}" width="24" height="24">
                    {/if}
                    {$link['title']|escape}
                </a>
            </li>
        {/foreach}
    </ul>
{/if}

Классу category-quick-links в этом примере нужно задать оформление в стилях своей темы. Плагин не добавляет стили для этого класса.

Только данные: getLinks($category_id)

Метод требует ID категории и возвращает массив ссылок в порядке sort ASC. Нулевой ID даёт пустой массив. В отличие от render(), метод не проверяет «Статус плагина» и не использует шаблон вывода.

{if !empty($wa->shop->ewshopclinksPlugin->version())}
    {$quick_links = $wa->shop->ewshopclinksPlugin->getLinks($category['id'])}
    {if !empty($quick_links)}
        <nav class="category-quick-links">
            {foreach $quick_links as $quick_link}
                <a href="{$quick_link['link']|escape}">{$quick_link['title']|escape}</a>
            {/foreach}
        </nav>
    {/if}
{/if}

Поля элемента массива

Поле Содержимое
id ID ссылки
category_id ID категории, к которой добавлена ссылка
contact_id ID пользователя, сохранившего ссылку
update_datetime Дата и время сохранения
title Текст ссылки
link Указанный адрес
sort Позиция в списке
image.url Публичный URL изображения, если оно есть
image.filename Исходное имя загруженного файла, если изображение есть

Без изображения ключ image не добавляется. Проверяйте его наличие перед обращением к вложенным полям.