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

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Белый экран
« : 15.12.2011, 22:28:04 »
Начал изучать К2.
При включении модуля К2 или попытке вывести в меню категорий сайт отрубается. Белый экран.
Joomla 1.5.25, K2 v2.5.1 обновился до v2.5.4
« Последнее редактирование: 15.12.2011, 23:35:28 от wanderer »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Белый экран
« Ответ #2 : 15.12.2011, 23:17:18 »
При попытке назначить в главное меню категории К2:

Notice: Only variables should be assigned by reference in ***/components/com_k2/helpers/permissions.php on line 18

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in ***/components/com_k2/models/item.php on line 28

Спойлер
[свернуть]
При включении модуля K2 Content (или K2 Comments, меняется только расположение файла с ошибкой на /mod_k2_content/helper.php on line 72)

Ошибка:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in ***/modules/mod_k2_content/helper.php on line 72
Спойлер
[свернуть]
« Последнее редактирование: 16.12.2011, 00:29:43 от SDKiller »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Белый экран
« Ответ #3 : 16.12.2011, 00:36:29 »
У вас какая версия php?
И вообще поподробнее про обстановку, сопутствующую вашему процессу изучения.

А по поводу ошибок unexpected T_OBJECT_OPERATOR - у вас при версии J 1.5.25, как вы пишете, вообще этот кусок кода не должен был быть задействован - там условие для версии Joomla >= 1.6
« Последнее редактирование: 16.12.2011, 00:44:27 от SDKiller »
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Белый экран
« Ответ #4 : 16.12.2011, 09:46:02 »
Вопрос о версии php подтолкнул в правильном направлении. Спасибо!
Добавил в .htaccess AddHandler php5-script .php .php5 заработало!
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Белый экран
« Ответ #5 : 16.12.2011, 09:49:10 »
А по поводу ошибок unexpected T_OBJECT_OPERATOR - у вас при версии J 1.5.25, как вы пишете, вообще этот кусок кода не должен был быть задействован - там условие для версии Joomla >= 1.6
не знаю почему так, Joomla установил как обычно, правил только шаблон, плюс 2 компонента.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Re: Белый экран
« Ответ #6 : 16.12.2011, 12:58:52 »
В таком случае, мб шаблон или компоненты для J1.6-1.7 встали на 1.5?
Чудес не бывает
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Белый экран
« Ответ #7 : 16.12.2011, 13:19:53 »
Даже не знаю как проверить. Удалил 2 неиспользуемых шаблона.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Re: Белый экран
« Ответ #8 : 16.12.2011, 13:32:18 »
Ну так загрузите 1 стандартный шаблон через FTP и назначьте его по умолчанию.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Белый экран
« Ответ #9 : 16.12.2011, 18:55:07 »
Ну так загрузите 1 стандартный шаблон через FTP и назначьте его по умолчанию.
зачем? стоит yoo_core_1.5 подправленный под себя... удалил ненужные, которые пробовал после установки Joomla.
а ошибка unexpected T_OBJECT_OPERATOR критична? где рыть?

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При установке K2 на сервер - белый экран

Автор Светлана

Ответов: 1
Просмотров: 1638
Последний ответ 28.04.2015, 23:35:43
от Светлана
Ошибка в k2 Fatal error: Class 'JFile' not found - белый экран вместо сайта

Автор aik666

Ответов: 2
Просмотров: 2443
Последний ответ 09.01.2015, 16:24:21
от aik666
Некоторые материалы не открываются (Белый экран)

Автор ShamilHan

Ответов: 1
Просмотров: 1105
Последний ответ 15.11.2014, 11:37:29
от kisBoss
K2 белый экран при сохранении категории или материала

Автор yantotal

Ответов: 0
Просмотров: 1912
Последний ответ 21.08.2014, 15:22:21
от yantotal
Компонент К2 белый экран

Автор sergeybotov

Ответов: 0
Просмотров: 1156
Последний ответ 22.08.2013, 22:36:57
от sergeybotov