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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
User friendly interface
« : 07.11.2008, 11:41:29 »
Искал сегодня в Google иконки, наткнулся на иконку, подпись под которой меня озадачила - почему иконка пользователя с отрубленными руками ассоциируется у авторов сайта с дружественным пользователю интерфейсом? В том смысле, что пользователь без рук ничего натворить не может, и этим самым он дружественен интерфейсу?

[вложение удалено Администратором]
*

canislc

  • Осваиваюсь на форуме
  • 34
  • 11 / 0
Re: User friendly interface
« Ответ #1 : 07.11.2008, 11:46:39 »
Он их за спиной держит! Это очень спокойный, дисциплинированный и ответственный пользователь.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: User friendly interface
« Ответ #2 : 07.11.2008, 11:59:03 »
Он их за спиной держит!
связанными? или в наручниках?
*

oleggrz

  • Захожу иногда
  • 435
  • 76 / 3
  • Только начал учиться.
Re: User friendly interface
« Ответ #3 : 07.11.2008, 12:21:40 »
Возможно интерфейс выполнен в стиле черного квадрата Малевича, так-что руки юзеру не нужны?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: User friendly interface
« Ответ #4 : 07.11.2008, 12:23:02 »
Большой квадрат с надписью "стучать головой сюда" ? :)
*

proxits

  • Осваиваюсь на форуме
  • 35
  • 6 / 0
  • Я нисколько не лев, и посему - не всегда прав
Re: User friendly interface
« Ответ #5 : 07.11.2008, 12:39:15 »
Чемпион мира шахматист Михаил Таль, как-то признавался, что дабы не наделать в спешке глупостей за доской,
садился на свои ладошки. Пока извлечет их за-под попы - трижды подумает над ходом. Говорил что это здорово спасало его от плохо продуманных решений. Так что творцы этой пиктограммы - доки в шахматах
 ;)
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Re: User friendly interface
« Ответ #6 : 07.11.2008, 12:52:00 »
Вообще то дружественный интервейс - самый простой и интуитивно понятный, сравним мышку и кабину вертолета - в принцепе мышкой можно управлять всеми ресурсами компа, даже вертолетом (в симуляторе), при том что у мышки всего две кнопки и колесико
Или в играх, например, ждойстик - это более дружественный интерфейс в отличии от клавиатуры
Телевизором можно управлять с пульта, а не лезть с отверткой под крышку телевизора - еще один пример

Вобщем дружественный интерфейс это унифицированность, и тот значек это (типа) символизирует   ;D



з.ы. смайлик - тоже унифицированый интерфейс (иногда это полезно, вот к примеру этот: :-X  я бы не хотел в реальности увидеть )) )
*

oleggrz

  • Захожу иногда
  • 435
  • 76 / 3
  • Только начал учиться.
Re: User friendly interface
« Ответ #7 : 07.11.2008, 12:55:54 »
2 proxits тогда юзерам надо срочно вес наращивать - ведь из-под двухсот килограмм руки вытащить тяжелее, чем из-под семидесяти.
2 smart, ну зачем так жестоко, возможно интерфейс с дистанционным управлением, плюнул на экран и порядок. ;D
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: User friendly interface
« Ответ #8 : 16.08.2009, 00:28:50 »
скачивал музло, традиционно при клике на ссылку вылезла страничка с ркалмой очередной браузерки.
2 часа ночи, надо дождаться конца закачки, а что-то делать сознательное мозг отказыватся уже.
в итоге ткнул на картику с браузеркой (привлёк средневековый доспех).
на сайте игры полез картинки смотреть в резделе "скриншоты".
на одной картинке пользовательский интерфейс в разрезе инвентаря - картика итема, полезные свойства, количество.

"клубень первоначал"
+  50 ЖО
использовать на
    [герой]

ну и картика в виде пожёванной ретьки сверху.

я не на столько склонен к психотропным препаратам, поэтому быстро покинул их дружественный интерфейс, так и не узнав, что такое ЖО и откуда они черпают вдохновение для названий местных овощей.

*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Re: User friendly interface
« Ответ #9 : 16.08.2009, 11:33:13 »
Вот по моему оно:
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться