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

ТатьянаБ

  • Новичок
  • 4
  • 0 / 0
Всем  добрый  день  или  ночь,  прошу  вашей  помощи,  я  уже  3 неделю  бьюс  с сайтом,  я полный  профан  в этом  деле

как  можно  изменить  названия  разделов  на главной   ,  мне  делали  сайт  а мне  все  теперь надо  переделать

А  МОЖЕТ  КТО ТО  СМОЖЕТ  МНЕ  ПОМОЧЬ 
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
для начала ссылку на сайт + подробней описать что тебе нужно поменять, т.к. понятие "названия  разделов  на главной " для меня  и тебя могут быть разными
*

ТатьянаБ

  • Новичок
  • 4
  • 0 / 0
http://razumeyki.ru/   мне  сайт  делала  фирма  разработчик  и  это  совсем  не  то  что я хотела  я просила  сделать  мне  вот  так  http://www.clubvodoley.ru/o_clube.html   я  уже  сто раз  им  обясняла  как я хочу,  они  дали  мне  ссылку на  книгу  и сказали  что  я  могу  и сама  теперь  все менять,  денги  за  сайт  я  уже  отправила,  и  вот  сижу  ковыряю   то  в чем  я  ЗДРАСТВУЙ  ДЕРЕВО  ,  как то  тупем  каких то проб  мне  удалось  изменить  названия  разделов  в  ДОШКОЛЬНИКАХ  но  как  я даже  и сама  не очень  поняла,  а вот  раздел  раннее развитие  я  вообще  запорола,  темы  есть а не  опображаются... 

Я  ХОтела  поменять  названия   РАННЕЕ  РАЗВИТИЕ  на  ЗАНЯТИЯ  ДЛЯ   от 9 месяцев до 3 лет

ДОШКОЛЬНИКОМ  на  Занятия  для детей от 3 до 7 лет

и  вообще  у меня  заходят  родители  а понять  не могут  все  страницы  несвязанны  логикой


Я  просила  сайт  сделать  узкий  мне  2 месяца  парили  что узкий  это  плохо ,  да  много  чего  нет  ...........
*

ТатьянаБ

  • Новичок
  • 4
  • 0 / 0
для начала ссылку на сайт + подробней описать что тебе нужно поменять, т.к. понятие "названия  разделов  на главной " для меня  и тебя могут быть разными

Я  УЖЕ  ПОНЯЛА  МНЕ  ЭТОТ  ФОРУМ  ИЗУЧАТЬ  ВСЮ  МОЮ  ЖИЗНИ  И НЕ  ИЗУЧИТЬ,  ИЛИ  НАЙТИ  ЧЕЛОВЕКА...
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Честно говоря по взгляду определить откуда берётся заголовок раздела, вариантов несколько:
1. Расширения -> Менеджер модулей
2. Материалы -> Менеджер разделов
3. Все меню -> и пробуете найти их в каждом из меню
*

ТатьянаБ

  • Новичок
  • 4
  • 0 / 0
Честно говоря по взгляду определить откуда берётся заголовок раздела, вариантов несколько:
1. Расширения -> Менеджер модулей
2. Материалы -> Менеджер разделов
3. Все меню -> и пробуете найти их в каждом из меню

Спасибо  вам  ,  по  первому  пункту  посмотрела  и там  только  написано  зеленое  меню,  голубое  меня,  и нет  знакомых  слов,  по  двум  другим  все  истравила,  а  на  главной  нет  отображения,  Я  ВСЕ ЖЕ  ПОНЯЛА  ЧТО это  не  для  меня  ,  у  меня  очень  мало  время  ,  а тут  так  все  написано что просто  супер,  только  ленивый  наверно  не поймет,  но я не ленива,  я просто  одна  тяну  центр  а  сайт  вот  врятли  мне  поднять  до того  ума  как  я хочу..
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Тогда, если есть возможность оплаты услуг, можете создать в разделе "Общий -> Коммерческие вопросы -> Предлагаю работу" и завтра с вами кто-нить выйдет на связь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Меню сайта. Выделение активной страницы в меню.

Автор Dies

Ответов: 9
Просмотров: 10122
Последний ответ 27.01.2016, 12:29:26
от Daser
Не выводится Google Adsense на главной странице сайта

Автор lodyr

Ответов: 0
Просмотров: 4185
Последний ответ 11.11.2014, 17:29:58
от lodyr
Как изменить отображение?

Автор aprelika

Ответов: 1
Просмотров: 2782
Последний ответ 14.11.2013, 11:10:01
от aprelika
Настройка главной страницы

Автор Alexey2013

Ответов: 6
Просмотров: 3468
Последний ответ 15.04.2013, 14:43:36
от Alexey2013
Не могу разобраться с редактированием главной страницы

Автор P!T

Ответов: 1
Просмотров: 3184
Последний ответ 15.04.2013, 10:51:54
от Werber