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

Warrior Of Darkness

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Здравствуйте, прошу помощи в доработке компонента 1.8.5.3.

Во-первых, хотелось бы знать как сделать так чтобы слайдшоу появлялось сразу после клика на миниэскиз, сборка представленная на форуме для галереи 1.8.3 не работает.
Во-вторых, можно ли сделать меню "Лучшие", "Новое"... не выпадающим списком и не таким убогим, а хотя бы ссылками, как в версии 1.7. Тоже самое касается окошка "Поиск".
В-третьих, может это только у меня так, но при включении "Подробностей изображения" среднее изображение отображается как на скрине:

В-четверых, почему-то как только поставил версию 1.8.5.3, а точнее обновил ее до 1.8.5.3, ссылка несмотря на Artio JoomSEF, кстати тоже свеженький, стала выглядеть убого, т.е. так http://адрес сайта/2010-12-25-15-42-04.html. Правда ссылки со времен прежней версии Datso вида http://адрес сайта/fotografiya-2114, нужное открывают.

Вроде бы все, прошу помощи, так как в PHP кодах ни очень большой спец., спасибо.  ^-^
« Последнее редактирование: 21.05.2011, 12:34:14 от Warrior Of Darkness »
*

Warrior Of Darkness

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Неужели никто не знает решение моих проблем?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как скачать компонент на официально сайте?

Автор archer1981

Ответов: 1
Просмотров: 3757
Последний ответ 16.08.2017, 09:56:35
от archer1981
Помогите убрать опцию СОРТИРОВКА в Datso Gallary

Автор Golubevod

Ответов: 3
Просмотров: 3372
Последний ответ 23.12.2013, 10:45:57
от novoross
Перенос галереи с Joomla 1.5 на 1.6, 1.7, 2.5

Автор pikachu

Ответов: 4
Просмотров: 3676
Последний ответ 24.11.2013, 06:21:11
от draff
Установил DatsoGallery но проблема с настройкой и выводом самой галереи

Автор Darth Evil

Ответов: 15
Просмотров: 6802
Последний ответ 18.06.2013, 18:41:46
от Blaid
SEO оптимизация галереи нужна подсказка

Автор maxtri

Ответов: 6
Просмотров: 5565
Последний ответ 05.11.2012, 09:42:10
от maxtri