Вывод в теме
Обновлено
Подключение
Добавьте код в шаблон темы в месте, где требуется изображение. Хелпер плагина доступен как $wa->menu->ewmenuimgPlugin. Все вызовы помещайте в проверку версии:
{if !empty($wa->menu->ewmenuimgPlugin->version())}
{$menu_image = $wa->menu->ewmenuimgPlugin->getImage($item.id, 'default', '64x64')}
{if !empty($menu_image)}
<img src="{$menu_image|escape}" width="64" height="64" alt="">
{/if}
{/if}В примере $item — текущий пункт меню из вашего шаблона. Плагин не создаёт эту переменную и не добавляет разметку меню автоматически. Значение 'default' — идентификатор группы, а не её название.
getImage(): одна ссылка
getImage($item_id = null, $unique_id = null, $size = null, $retina = null)| Параметр | Назначение |
|---|---|
$item_id |
ID пункта приложения «Управление меню» |
$unique_id |
Значение поля «Уникальный идентификатор группы» |
$size |
Строка вида 64x64, 200x100, 200x0 или 0x100 |
$retina |
Опустите для обычного изображения; передайте true для версии @2x |
Возвращает URL или пустую строку, если плагин выключен настройкой «Статус плагина», не переданы необходимые параметры, не найдена группа или у пункта нет изображения в ней.
Используйте формат размера с латинской x между шириной и высотой. Если размер не задан в группе, включите «Эскизы произвольных размеров», чтобы отсутствующий эскиз создавался при вызове. При выключенной настройке хелпер может вернуть адрес отсутствующего файла.
Изображение для Retina
{if !empty($wa->menu->ewmenuimgPlugin->version())}
{$menu_image = $wa->menu->ewmenuimgPlugin->getImage($item.id, 'default', '64x64')}
{$menu_image_2x = $wa->menu->ewmenuimgPlugin->getImage($item.id, 'default', '64x64', true)}
{if !empty($menu_image)}
<img src="{$menu_image|escape}"
srcset="{$menu_image_2x|escape} 2x"
width="64" height="64" alt="">
{/if}
{/if}При включённых «Эскизы изображений @2x» второй вызов возвращает адрес эскиза с удвоенными размерами. Если настройка выключена, возвращается обычная ссылка. Для SVG оба вызова возвращают ссылку на оригинал.
Не передавайте false вместо пропущенного четвёртого параметра: текущая реализация выбирает @2x для любого значения, отличного от null, когда настройка @2x включена.
getImages(): ссылки для дерева меню
getImages($categories = null, $unique_id = null, $size = null, $depth = null)Метод принимает массив пунктов с ключами id и, для вложенных пунктов, childs. Имена первого аргумента в коде не означают, что сюда нужно передавать категории Shop-Script: это дерево пунктов меню.
$depth задаёт число уровней обхода: 1 — верхний уровень, 2 — верхний и его дочерние пункты. Если параметр опущен или равен null, обходится всё дерево.
{if !empty($wa->menu->ewmenuimgPlugin->version())}
{$menu_images = $wa->menu->ewmenuimgPlugin->getImages($menu, 'default', '64x64', 2)}
{foreach $menu as $item}
{if !empty($menu_images[$item.id]['image'])}
<img src="{$menu_images[$item.id]['image']|escape}" width="64" height="64" alt="">
{/if}
{/foreach}
{/if}Здесь $menu — уже полученный в теме массив пунктов. Пример выводит изображения верхнего уровня; для дочерних пунктов используйте их ID при обращении к тому же результату.
Результат — плоский массив по ID пункта:
ID пункта => [
'image' => 'URL обычного изображения',
'image_2x' => 'URL изображения @2x'
]Ключ image_2x добавляется для растрового изображения при включённой настройке @2x. Для SVG есть только image. Пункты без загруженных изображений не включаются в результат.
Для этого метода используйте заранее созданные размеры группы: в текущем коде ветка создания произвольного размера имеет несоответствие при заполнении результата, требующее проверки. Для отдельного произвольного размера используйте getImage().