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

Подключение к теме и события

Обновлено

Автоматическое подключение

В Магазин → Плагины → Всплывающие баннеры включите «Включить плагин» и «Подключать через хук». Плагин возвращает стили, скрипты и данные баннеров через wa.frontend_head.

Для этого тема должна выводить результат этого хука. Если автоматического подключения достаточно, дополнительный вызов хелпера не нужен.

Хелпер в шаблоне

Для ручного подключения отключите «Подключать через хук», оставив «Включить плагин» включённым. Добавьте один вызов в общий шаблон темы, например перед закрывающим </body>:

{if !empty($wa->shop->ewshoppopupPlugin->version())}
    {$wa->shop->ewshoppopup()}
{/if}

{$wa->shop->ewshoppopup()} — вызов shopEwshoppopupViewHelper::__invoke() без аргументов. Он определяет текущий домен, получает активные баннеры для витрины и выводит подключения CSS/JS вместе с данными. Если плагин выключен или подходящих правил нет, вывод пустой.

Обёртка проверяет наличие плагина перед вызовом. Вставляйте код в исходный шаблон страницы: инициализация подписывается на DOMContentLoaded, поэтому поздняя вставка этого HTML через AJAX после загрузки документа сама её не запустит.

Хелпер возвращает подключения и скрипт инициализации. Само окно добавляется JavaScript в document.body; перенос вызова в другой участок шаблона не превращает баннер во встроенный блок страницы.

Индивидуальные стили

В поле «CSS-класс» редактора баннера укажите, например, my-promo-banner. Этот класс получит внешний элемент окна .ewshoppopup или панели .ewshopdrawer. Правила оформления добавляйте в стили вашей темы.

HTML содержимого витрины формируется в JavaScript. Отдельного Smarty-шаблона всплывающего окна для переопределения в теме в плагине нет. BackendPromo.html — шаблон настроек в бэкенде.

События JavaScript

События отправляются на document как CustomEvent.

Событие Когда отправляется event.detail
ewshoppopup:show При обработке показа через общий менеджер Объект баннера
ewshoppopup:click При клике по кнопке-ссылке окна Объект баннера
ewshoppopup:close При закрытии окна Объект с полем id
ewshopdrawer:show При фактическом открытии панели Объект баннера
ewshopdrawer:click При клике по кнопке-ссылке панели Объект баннера
ewshopdrawer:close При закрытии панели Объект баннера

Объект баннера содержит id правила, promo_id, image_url, title, text, link, countdown_datetime и settings с параметрами плагина.

Пример подписки в JavaScript темы:

document.addEventListener('ewshoppopup:close', function (event) {
    console.log('Закрыто окно правила', event.detail.id);
});

document.addEventListener('ewshopdrawer:show', function (event) {
    console.log('Открыта панель правила', event.detail.id);
});

На мобильных устройствах менеджер отправляет также ewshoppopup:show, даже если панель ожидает в очереди. Для реакции на фактическое открытие панели используйте ewshopdrawer:show. События click относятся к кнопке-ссылке, а не к произвольному нажатию на изображение или текст.