Подключение к теме и события
Обновлено
Автоматическое подключение
В Магазин → Плагины → Всплывающие баннеры включите «Включить плагин» и «Подключать через хук». Плагин возвращает стили, скрипты и данные баннеров через 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 относятся к кнопке-ссылке, а не к произвольному нажатию на изображение или текст.