Новости 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 Ответов
  • 1701 Просмотров
*

Файрик

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Теги <ul> и <li>
« : 08.07.2009, 10:07:41 »
Столкнулся с такой проблемой, даже не проблемой, а неприятной ситуацией - имеется какой-нить текст.. затем идет перечисление чего-либо посредством тегов "ul" и "li". И если включить в это перечисление ещё одно (как бы подкаталог), то почему то в окне редактора показывает сдвиг подкаталога вправо относительно поля текста, а на деле облом.

Вот так выглядит код
<ul><li></li>
      <li></li>
           <ul><li></li>
                 <li></li>
           </ul>   
      <li></li>
      <li> </li>
</ul>

По-идее так же должен выводиться и текст

* 1
* 2
   * 2.1
   * 2.2
* 3
* 4

На деле все иначе

* 1
* 2
* 2.1
* 2.2
* 3
* 4

как это исправить?
*

Funkdoobiest

  • Захожу иногда
  • 244
  • 25 / 13
Re: Теги <ul> и <li>
« Ответ #1 : 08.07.2009, 10:20:16 »
в CSS смотрите характеристики этих тегов. Скорее всего отступ убрали.
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: Теги <ul> и <li>
« Ответ #2 : 08.07.2009, 10:48:21 »
Вот так выглядит код
<ul><li></li>
      <li></li>
           <ul><li></li>
                 <li></li>
           </ul>   
      <li></li>
      <li> </li>
</ul>

Извращенец. Список должен быть внутри li, т.е.
<ul><li></li>
      <li>
           <ul>
                 <li></li>
                 <li></li>
           </ul>   
      </li>
 
      <li></li>
      <li> </li>
</ul>
*

Funkdoobiest

  • Захожу иногда
  • 244
  • 25 / 13
Re: Теги <ul> и <li>
« Ответ #3 : 08.07.2009, 10:53:27 »
ыыыы точняк :) А я код то и не посмотрел))
*

Файрик

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Re: Теги <ul> и <li>
« Ответ #4 : 09.07.2009, 06:42:54 »
вот блин запутил то((((( спасибо.... а то сижу маюсь.. думаю вроде все правильно... гм... как грицо все гениальное просто))) ещё раз спасипо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Страницы с повторяющимися заголовками (теги title)

Автор Brefeo

Ответов: 88
Просмотров: 15474
Последний ответ 12.02.2015, 17:10:23
от Juseppe
Как целый модуль заключить в теги nofollow noindex?

Автор shuzi

Ответов: 10
Просмотров: 3930
Последний ответ 15.12.2012, 09:27:40
от vip otkritki
мета теги

Автор tdrive

Ответов: 2
Просмотров: 1448
Последний ответ 24.01.2012, 02:50:28
от ELLE
Теги картинками или что это такое?

Автор peoplee

Ответов: 2
Просмотров: 1243
Последний ответ 28.12.2011, 12:24:32
от peoplee
Теги в заголовке модуля

Автор morozovol

Ответов: 7
Просмотров: 1660
Последний ответ 05.10.2011, 16:17:37
от morozovol