Новости 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 Гость просматривают эту тему.
  • 4 Ответов
  • 1500 Просмотров
*

msweb

  • Захожу иногда
  • 63
  • 0 / 0
Вопрос: К2 и поиск
« : 14.04.2011, 13:18:35 »
Господа форумчане!
Подскажите, плииз... Подключен стандартный модуль поиска к2 (он вполне устраивает). Когда материал найден, то выводятся все найденные по запросу материалы, тут все ок. Но, если материал по запросу не найден, то никакого сообщения, типа: "по вашему запросу ничего не найдено" не выводится. Может я тупо не разобрался в настройках? Если такой возможности в настройках нет, то как это можно реализовать (через php? наверное) и возможно ли?...
Заранее благодарен...
*

lesta

  • Осваиваюсь на форуме
  • 25
  • 6 / 0
Re: Вопрос: К2 и поиск
« Ответ #1 : 14.04.2011, 17:40:28 »
редактирует файл generic.php  в вашем шаблоне!
добавляете там проверку пуст ли полученный массив элементов к примеру.
*

msweb

  • Захожу иногда
  • 63
  • 0 / 0
Re: Вопрос: К2 и поиск
« Ответ #2 : 15.04.2011, 11:14:42 »
Да я это понимаю, что надо редактировать php!))))) Вопрос в том, что ну не силен я пока в этом!))) Может кто подскажет готовое решение (если конечно это возможно), что именно там надо прописать, или хотя бы направить в нужное русло!
*

BHy4eK

  • Захожу иногда
  • 110
  • 1 / 0
Re: Вопрос: К2 и поиск
« Ответ #3 : 16.01.2012, 13:54:46 »
Если кто разобрался отпишитесь ... что атм нужно поменять в generic.php
*

devul

  • Захожу иногда
  • 283
  • 21 / 1
  • если помог можете поставить +
Re: Вопрос: К2 и поиск
« Ответ #4 : 17.06.2012, 17:35:35 »
как то так: <?php if(count($this->items)) {echo 'найдено';} else {echo 'не найдино ничегошеньки';}; ?>
Бложик про joomla, k2, joomshoppingdevul.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Точный поиск JA K2 Filter and Search Module

Автор Abez

Ответов: 1
Просмотров: 934
Последний ответ 25.02.2020, 19:58:47
от Abez
Поиск К2 + в результаты Категории

Автор jurassik

Ответов: 1
Просмотров: 1412
Последний ответ 28.11.2017, 20:06:03
от kisBoss
[Решено] Не работает поиск а админке по К2 на кирилице

Автор WinssLioN29

Ответов: 0
Просмотров: 1232
Последний ответ 09.07.2017, 23:15:07
от WinssLioN29
Система Вопрос-Ответ в внутри материала

Автор ArtCh

Ответов: 1
Просмотров: 1261
Последний ответ 19.04.2017, 04:52:09
от ArtCh
K2 v2.7.1 поломался поиск в админке

Автор d0ublezer0

Ответов: 7
Просмотров: 4805
Последний ответ 17.03.2017, 01:57:59
от RivalNoX