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

tkheun

  • Захожу иногда
  • 145
  • 1 / 0
На главной странице pathway выводит следующий текст:
"Вы находитесь здесь: Home"
Как изменить Home на надпись на русском языке. Дело в том, что в mainmenu я назначил по умолчанию один из материалов раздела articles (он называется "Главная").
Думал, что проблема решится после правки заголовка компонента frontpage, но тоже не сработало.
Подскажите, как решить этот вопрос?
« Последнее редактирование: 26.10.2009, 21:25:42 от PaLyCH »
*

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
Re: Настройка pathway
« Ответ #1 : 01.04.2008, 22:11:43 »
В 1.5 путь выводит модуль "breadcrumbs". Если он включен, то слово "Home" берётся именно из его параметров, точнее из поля "Название домашней страницы" ("Text For Home Entry"). Именно там и нужно менять. Если значение этого поля не задано, то берётся название пункта меню.
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512
*

tkheun

  • Захожу иногда
  • 145
  • 1 / 0
Большое спасибо

гм.. разобрались.. а как-нить можно вообще это убрать?
*

tkheun

  • Захожу иногда
  • 145
  • 1 / 0
гм.. разобрались.. а как-нить можно вообще это убрать?
Вообще убрать что? Сам вывод пути или только название главной страницы из пути?
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
открываете файл index.php Вашего шаблона и удаляете строки, где прописан patway
*

_EvgeN_

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
открываете файл index.php Вашего шаблона и удаляете строки, где прописан patway
зачем так жестоко?! В полторашке это модуль и соответственно его отключить можно
*

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
Как я понял, в некоторых шаблонах вывод "pathway" прописан прямо в коде.
« Последнее редактирование: 01.05.2008, 17:00:37 от Greycat »
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
в некоторых шаблонах вывод "patway" прописан прямо в коде.
Я бы сказала во многих :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Изменить ограничение длины поиска в 20 символов

Автор Sulpher

Ответов: 0
Просмотров: 24069
Последний ответ 14.04.2009, 17:18:40
от Sulpher
Главная страница - Изменяем TITLE страницы на желаемый

Автор Demiyrgi

Ответов: 4
Просмотров: 47379
Последний ответ 16.03.2009, 13:47:14
от Demiyrgi