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

Tarisper

  • Новичок
  • 2
  • 0 / 0
K2 проблема авторизации
« : 16.02.2012, 13:01:39 »
Здравствуйте.
Скажу честно поиск по форму ничего не дал, а сам дальше четвертой страницы не осилил.
Имеются две проблемы.
1. При включении плагина sh404SEF не получается авторизоваться на сайте ни через K2, ни через стандартный модуль. Просто авторизация ничего не дает, просто перезагружает страницу.
2. Без плагина sh404SEF авторизация в K2 проходит, но если ввести неверные данные, то открывается страница с требованием ввести верный логин и пароль, но эта страница имеет не тот шалон, который установлен по умолчанию. В моем случае грузится шаблон австралийского парка, да еще и, естественно, без других подключенных модулей.

Просто удалить все шаблоны, кроме используемого по умолчанию не удается. Либо сообщает, что нельзя удалить единственный используемый шаблон (как такое возможно, ведь я не удаляю используемый), либо вообще ничего не происходит при удалении.

Вобщем, либо я что-то не понимаю, либо одно из двух.
*

Tarisper

  • Новичок
  • 2
  • 0 / 0
Re: K2 проблема авторизации
« Ответ #1 : 16.02.2012, 13:19:22 »
Вторая проблема решена. Всё таки я невнимательный :) Надо было просто удрать привязку к страницам в настройках шаблона. А вот что делать с первой проблемой - не знаю. Правда это уже не относится к K2.

1Ну и новый вопрос. Где можно поправить модуль K2 Login, чтобы поменять его дизайн? Дело в том, что в шаблоне ZT Opis заголовок блока div в котором находился модуль наезжает на поле ввода логина и выглядит всё это не очень.
*

VasiliO

  • Захожу иногда
  • 69
  • 0 / 0
Re: K2 проблема авторизации
« Ответ #2 : 29.06.2012, 11:48:46 »
:) развеселил  mod_k2_login где находится?? я его поправил как хотел во все стороны теперь не могу найти где форму регистрации поправить... :((
*

yura88851

  • Захожу иногда
  • 125
  • 0 / 0
Re: K2 проблема авторизации
« Ответ #3 : 01.07.2012, 22:08:05 »
Посмотри файл k2.css строка 710 - может поможет
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

K2 + Falang, проблема с поиском

Автор x1

Ответов: 1
Просмотров: 2695
Последний ответ 07.02.2022, 16:15:37
от x1
Проблема с датой

Автор nick71

Ответов: 0
Просмотров: 802
Последний ответ 02.03.2020, 20:44:18
от nick71
Проблема с нагрузкой на хостинг сервер Joomla 3.9.13 + K2+подсчет хитов

Автор Kokshetau

Ответов: 0
Просмотров: 1027
Последний ответ 27.01.2020, 10:53:02
от Kokshetau
Проблема с дополнительным полем "ДАТА"

Автор Rustik

Ответов: 5
Просмотров: 2243
Последний ответ 10.10.2019, 14:35:11
от Mehanick
Проблема с ссылками внутри материала

Автор x1

Ответов: 1
Просмотров: 914
Последний ответ 27.01.2019, 12:11:03
от x1