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

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Энергетические яйца
« : 29.05.2015, 22:23:48 »
Подписывался как-то на почтовую рассылку бизнес идей. Сегодня вот такое письмо пришло с идеей. Делюсь)

http://www.1000ideas.ru/article/biznes/eda-i-napitki/biznes-ideya-2449-energeticheskie-yaytsa-/
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #2 : 29.05.2015, 22:33:57 »
А что не так?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Энергетические яйца
« Ответ #3 : 29.05.2015, 22:35:37 »
Ссылка - бред, сайт неизвестный..
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Энергетические яйца
« Ответ #4 : 29.05.2015, 22:36:25 »
Подписывался как-то на почтовую рассылку бизнес идей.
Уже или вранье или психическая болезнь.
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #5 : 29.05.2015, 22:40:20 »
То спамер, теперь болезнь. Ты о чем вообще?
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #6 : 29.05.2015, 22:42:15 »
Вот ссылка где подписывался
http://subscribe.ru/group/1000-idej-idei-biznesa-so-vsego-mira/8567057/
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #7 : 29.05.2015, 22:49:28 »
Уже или вранье или психическая болезнь.
Нее правда че это было? В дурдом интернет провели?)
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Энергетические яйца
« Ответ #8 : 29.05.2015, 23:40:34 »
Факт, что китайцы это *** жрут.
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #9 : 29.05.2015, 23:52:40 »
Да конечно жрут. Таков вот он мир в котором мы живем. Что для нас дико, для китайцев совершенно нормально. Я вот на этим просто поржал) А у voland это вызвало какие-то болезненные эмоции. Наверно мама долго в памперсах заставляла ходить)) Или от армии через энурез закосил!))
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Энергетические яйца
« Ответ #10 : 29.05.2015, 23:59:50 »
Да конечно жрут. Таков вот он мир в котором мы живем. Что для нас дико, для китайцев совершенно нормально. Я вот на этим просто поржал) А у voland это вызвало какие-то болезненные эмоции. Наверно мама долго в памперсах заставляла ходить)) Или от армии через энурез закосил!))
В бан, надеюсь навсегда.
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #11 : 30.05.2015, 00:07:47 »
Похоже угадал!)
Здесь адекватные модераторы, банить меня не за что. Раздел называется ЮМОР, все в рамках правил. А вот таких неадекватов как ты, надо от нормальных людей ограничивать.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Энергетические яйца
« Ответ #12 : 30.05.2015, 00:12:43 »
Раздел - флейм, а не место для спама.
А в армии был, через пару месяцев переключился на нормальный язык вместо матерного, зачем его попусту то тратить?
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Энергетические яйца
« Ответ #13 : 30.05.2015, 00:57:16 »
А в армии был, через пару месяцев переключился на нормальный язык вместо матерного...
Кстати, любой неадекват рано или поздно себя выдает, прямо или косвенно. Вот ты себя сейчас выдал прямо, сказал что пришел в армию в неадекватном состоянии, матерился. Но через два месяца армия сделала из тебя нормального человека. Но видимо все же не до конца))

Пиши еще, пусть все увидят кто ты на самом деле.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Энергетические яйца
« Ответ #14 : 30.05.2015, 01:57:27 »
voland, раздел таки юмор, который находится в разделе флейм. Не пойму, чего ты на ТС напал? Да, как по мне, не особо смешно. Но всё в рамках правила форума. Какой ещё нафиг бан?
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Энергетические яйца
« Ответ #15 : 30.05.2015, 18:55:51 »
В армии не был, иначе пришлось бы Москву брать.. Нафиг мне Москва?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Энергетические яйца
« Ответ #16 : 30.05.2015, 19:12:52 »
Код: php
<?php
$num = '12345';
echo $num{2}, print 2;
// че за глюк 65279

Какой результат будет  ;D
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Энергетические яйца
« Ответ #17 : 30.05.2015, 20:02:02 »
321 получается.
P.S. 65279 это не глюк, это BOM.
P.P.S тут энергетическими яйцами не обойтись, железные нужны.
« Последнее редактирование: 30.05.2015, 20:06:05 от passer »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться