Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует версию PHP
7.4
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже
2.6
!
Как пользоваться:
1. Создать в админке плагин с любым именем и подключить его к нужным событиям.
2. В JavaScript нужно ловить событие «eventbus» и в обработчике выполнять необходимое действие.
3. Вы можете передавать на сервер информацию о браузерных событиях. Например, для передачи на сервер информации о клике по ссылке
Доступны нестандартные значения для атрибута data-ueb-event:
— close/open — установите его элементам которые должны закрыться/открыться
— show/hide — установите его элементам которые должны появляться/исчезать (например при скролле)
При использовании событий close/open у целевых элементов должны меняться классы отвечающие за показ/скрытие
и эти классы надо перечислить в системных настройках.
В атрибуте data-ueb-params можно указать произвольные параметры, которые будут переданы в событие на сервер.
4. Вы можете добавить обработчик события eventbus:before:send и добавить любые данные для передачи на сервер
Системные события:
— OnUebInit (после инициализации компонента): $EventBus
— OnBeforeUebHandleEvent (перед получением данные и добавления в очередь): $EventBus, $dispatch
— OnUebHandleEvent (после получения данных, но перед добавлением в очередь): $output, $EventBus
— OnUebGetProductsData (получение данных о товаре): $product, $EventBus.
— OnGetUebWebConfig (получение конфигурации фронтенда): $webConfig, $EventBus.
Вы можете отменить добавление события в очередь в плагине: $EventBus->dispatch = false.
Вы можете изменить данные перед отправкой в очередь в плагине: $EventBus->output = [];
Вы можете изменить данные товара в плагине: $EventBus->product = [];
Вы можете изменить конфигурации фронтенда в плагине: $EventBus->webConfig = [];
Вы можете изменить получателя в плагине: $EventBus->branch = 'branch_name';
Вы можете изменить получателя при инициализации: $EventBus = new EventBus($modx, ['branch' => 'branch_name']);
Для того, чтобы в данных была информация о модификациях, нужно передать на сервер id модификации в параметре mid
или опции в параметре options, по которым можно получить модификацию.
1. Создать в админке плагин с любым именем и подключить его к нужным событиям.
use UniversalEventBus\Services\EventBus;
$basePath = $modx->getOption('base_path', null, $_SERVER['DOCUMENT_ROOT'] . '/');
require_once $basePath . 'core/components/universaleventbus/services/vendor/autoload.php';
$eventBus = new EventBus($modx);
$eventBus->sendEvent($modx->event->name);
2. В JavaScript нужно ловить событие «eventbus» и в обработчике выполнять необходимое действие.
document.addEventListener('eventbus', (event) => {
console.log(event.detail.data);
});
3. Вы можете передавать на сервер информацию о браузерных событиях. Например, для передачи на сервер информации о клике по ссылке
<a href="{$uri}" data-ueb-event="click" data-ueb-once="1" data-ueb-params="rid:{$id};eventName:productClick">{$menutitle}</a>
Атрибут data-ueb-once указывает на то, что событие будет отправлено только один раз.Доступны нестандартные значения для атрибута data-ueb-event:
— close/open — установите его элементам которые должны закрыться/открыться
— show/hide — установите его элементам которые должны появляться/исчезать (например при скролле)
При использовании событий close/open у целевых элементов должны меняться классы отвечающие за показ/скрытие
и эти классы надо перечислить в системных настройках.
В атрибуте data-ueb-params можно указать произвольные параметры, которые будут переданы в событие на сервер.
4. Вы можете добавить обработчик события eventbus:before:send и добавить любые данные для передачи на сервер
document.addEventListener('eventbus:before:send', (event) => {
const {target, params} = event.detail;
if(target.id === '#product-1') {
params.append('product_id', 1);
}
});
Системные события:
— OnUebInit (после инициализации компонента): $EventBus
— OnBeforeUebHandleEvent (перед получением данные и добавления в очередь): $EventBus, $dispatch
— OnUebHandleEvent (после получения данных, но перед добавлением в очередь): $output, $EventBus
— OnUebGetProductsData (получение данных о товаре): $product, $EventBus.
— OnGetUebWebConfig (получение конфигурации фронтенда): $webConfig, $EventBus.
Вы можете отменить добавление события в очередь в плагине: $EventBus->dispatch = false.
Вы можете изменить данные перед отправкой в очередь в плагине: $EventBus->output = [];
Вы можете изменить данные товара в плагине: $EventBus->product = [];
Вы можете изменить конфигурации фронтенда в плагине: $EventBus->webConfig = [];
Вы можете изменить получателя в плагине: $EventBus->branch = 'branch_name';
Вы можете изменить получателя при инициализации: $EventBus = new EventBus($modx, ['branch' => 'branch_name']);
Для того, чтобы в данных была информация о модификациях, нужно передать на сервер id модификации в параметре mid
или опции в параметре options, по которым можно получить модификацию.
1.2.0-beta3
- Исправил получение данных о конкретном элементе корзины.
1.2.0-beta2
- Добавил возможность транслитерации полей товара в orderData.
- Изменил обработку открытий и закрытий элементов.
1.2.0-beta
- Добавил возможность транслитерации полей товара в productsData.
- Добавил получение данных модификации при использовании msOptionsPrice2.
1.1.0-beta4
- Мелкие правки.
1.1.0-beta3
- Добавил возможность использовать методы execute() и getSQL().
- Добавил возможность определять страницу по переданному в параметрах uri.
1.1.0-beta2
- Добавил возможность пересылать сообщения между пользователями.
- Добавил возможность программно отправлять события на сервер.
1.1.0-beta
- Добавил отправку браузерных событий на сервер.
1.0.0-beta2
- Добавил ESLint.
- Добавил информацию о корзине.
- Поменял приоритет для события OnLoadWebDocument.
- Убрал любые манипуляции с данными на фронтенде.
1.0.0-beta
- Первая сборка.
Последние обсуждения в сообществе MODX.pro