Новости Joomla

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 1375 Просмотров
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
На сайте есть доставка вот этими транспортными компаниями http://prnt.sc/e8l4hk  какие плагины поставить чтобы считал стоимость? И как называется плагин для расчёта доставки Почта России? СПС)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это вроде бы все в eDost есть если не ошибаюсь
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
dmitry_stas а других вариантов нет?)  eDost хочет по 125 руб. за каждый способ доставки в месяц....( у нас 8 способов, не хочется платить(
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
eDost хочет по 125 руб. за каждый способ доставки в месяц....( у нас 8 способов, не хочется платить(
Это всего лишь 1000р в месяц. Интернет-магазин не может осилить такую мелочь?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
dmitry_stas а других вариантов нет?)  eDost хочет по 125 руб. за каждый способ доставки в месяц....( у нас 8 способов, не хочется платить(
без задних мыслей, хочу пожелать чтобы ваши клиенты так не думали ;)
я думал что лозунг "экономика должна быть экономной" умер вместе с ссср :)

П.С. брать отдельные плагины.. но они тоже платные в основной массе, а некоторые может даже надо писать, что точно будет дороже :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
robert, nevigen и не совсем понятно... в описании плагина написано что по 125 руб. а на офф. сайте за 12 способов 500 руб. всего... http://www.edost.ru/reg.php
да я просто админ, экономит заказчик(
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
в описании какого плагина ? :)
на офсайте наверное офданные? :)
от кол-ва дают скидку. 12 способов за 500р/м  (при 400 запросов в сервис в день) не вижу проблемы... реально... ил у него расчитывают стоимость доставки более 400 раз в день ? тогда это уже не жадность а патология ;)
пусть ваш заказчик разместит в ФЛ запрос сколько стоит сделать каждый плагин отддельно. ;) его сразу попустит.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
nevigen а... это варезный плагин был http://joomla-i.org/products/edost-joomshopping  а на офф сайте Шопинга просто "от 125 руб."   https://joomshopping.pro/edost-delivery-calculator.html
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
ижумла вообще сплошной варез. там нет ничего нормального. поломаное старье.

есть и еще :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки Сдек или Яндекс

Автор Preview

Ответов: 9
Просмотров: 8776
Последний ответ Сегодня в 12:00:32
от kit2m2
Расчет стоимости доставки в JoomShopping 3.12.3

Автор teanin

Ответов: 17
Просмотров: 12289
Последний ответ 23.04.2023, 11:55:30
от tigra-uki
Плагины доставки для Польши

Автор Alex_gs

Ответов: 1
Просмотров: 2184
Последний ответ 21.03.2023, 14:36:37
от kit2m2
Стоимость заказа без стоимости доставки

Автор Alex_gs

Ответов: 3
Просмотров: 2689
Последний ответ 17.01.2023, 15:04:06
от kit2m2
Украинские плагины оплаты для версии 5, 0?

Автор Alex_gs

Ответов: 3
Просмотров: 2723
Последний ответ 12.01.2023, 01:16:57
от Alex_gs