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

BHy4eK

  • Захожу иногда
  • 110
  • 1 / 0
Проблема с базой данных.
« : 07.10.2012, 15:22:11 »
Использую Joomla 1.5 + K2 v2.5.1

Не ищет некоторые материалы поиском, думаю проблема с базой данных, так как в админке при поиске материалов к2 ( хотя точно знаю что материал есть) поиск ничего не находит :(

А ещё как следствие нельзя найти материал через поиск на сайте. Так и заметил кстати эту проблему. Думаю почему то не ищется у меня на сайте там определенная статья, то есть как будто её нет, а потом вспоминаю что точно её добавлял. Попытался найти её в админ части в списке материалов k2 - нету … хмм… глазами её вижу, могу править, отображается отлично, индексируется тоже, а поиском найти не могу, ни тем что на сайте, ни k2 поиском материалов тем что в админке!

Пробовал обновлять K2 эффект тот же… может у кого то было такое ? поделитесь опытом.     
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Проблема с базой данных.
« Ответ #1 : 07.10.2012, 15:41:01 »
Ну что значит "некоторые" и как тут можно что посоветовать?

Когда что-то не работает в некоторых случаях, но работает во всех остальных, единственный совет - выяснить чем этот случай отличается от остальных.

К примеру, вы упорно пытаетесь найти статью по одному слову в названии.

Но при создании материала в вместо русской "с" ввели латинскую "с" - обычная ошибка, так как на одной клавише и внешне не отличаются, многие раскладку вовремя забывают переключить.

А при поиске вводите правильно - русскую.
*

BHy4eK

  • Захожу иногда
  • 110
  • 1 / 0
Re: Проблема с базой данных.
« Ответ #2 : 20.10.2012, 16:05:54 »
Спасибо за поддержку буду пробовать разобраться.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор x1

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

Автор nick71

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

Автор Kokshetau

Ответов: 0
Просмотров: 1026
Последний ответ 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