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

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Активный пункт меню
« : 02.10.2014, 16:54:32 »
Итак вопрос следующего характера: При переходе с главной страницы, через любой модуль вывода инфо (материалы, комментарии и т.д.) соответсвующее меню не активно, а получается остаемся на главной, тоесть читаем материал из категории новости (хлебные крошки показывают все ок, ссылка тоже все норм, а вот меню не активно) а показывает что мы на главной странице  :o .
А вся беда в том что так как, мы (как показывает меню) остались на главной, то и модули выводятся прикрепленные к главной странице, что не есть хорошо...нужно чтобы выводились модули прикрепленные к пункту меню Новости
Исходные данные: Joomla последней версии 3.3.6, Шаблон  Plethora, компоненты К2, Jcoments
*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Активный пункт меню
« Ответ #2 : 02.10.2014, 17:14:16 »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Активный пункт меню
« Ответ #3 : 02.10.2014, 17:16:27 »
А вся беда в том что так как, мы (как показывает меню) остались на главной
а вся беда скорее всего в этих модулях и к2, т.к. у него видимо свой роутер и helper
т.е. при этом к ссылке не добавляется нужный Itemid, соответственно ссылка формируется Неправильно. я даже не удивлюсь если она будет отличаться)
со стандартными материалами такого не должно быть
*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Активный пункт меню
« Ответ #4 : 02.10.2014, 17:22:57 »
а вся беда скорее всего в этих модулях и к2, т.к. у него видимо свой роутер и helper
т.е. при этом к ссылке не добавляется нужный Itemid, соответственно ссылка формируется Неправильно. я даже не удивлюсь если она будет отличаться)
со стандартными материалами такого не должно быть
Все вроде нормально, ссылка формируется правильно, при переходе с модуля Jcooments такая же беда....
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Создание сайтов, шаблонов, помощь в решении проблем.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Активный пункт меню
« Ответ #6 : 02.10.2014, 17:37:58 »
Все вроде нормально, ссылка формируется правильно, при переходе с модуля Jcooments такая же беда....
ну по идеи такого не должно быть с Jcooments
пункты меню на компонент k2 видут? материалы в нем создавались?
выключите SEF и посмотрите какое значение передается в ссылке ...&Itemid=...

*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Активный пункт меню
« Ответ #8 : 02.10.2014, 18:14:11 »
сссылка имеет такой вид index.php?option=com_k2&view=item&id=5174:pochesnij-gromadyanin-novoji-vodolagi&Itemid=101
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Активный пункт меню
« Ответ #9 : 02.10.2014, 18:30:45 »
сссылка имеет такой вид index.php?option=com_k2&view=item&id=5174:pochesnij-gromadyanin-novoji-vodolagi&Itemid=101
мне это не о чем не говорит :)
этот материал принадлежит какой-то категории?
есть пункт меню на категорию с этим материалом?
в общем смотрите какая ссылка будет из модуля и из блога или откуда там еще (я структуры сайта вашего не знаю) и сравните
*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Активный пункт меню
« Ответ #10 : 02.10.2014, 19:04:08 »
мне это не о чем не говорит :)
этот материал принадлежит какой-то категории?
есть пункт меню на категорию с этим материалом?
в общем смотрите какая ссылка будет из модуля и из блога или откуда там еще (я структуры сайта вашего не знаю) и сравните
Итак, немножко разобрался...
У меня Главной был пункт меню с Itemid=101 (Вывод категорий К2) при переходе с главной присваивался соответственно этот ID.
Изменив пункт меню главная на вывод стандартных материалов Joomla, при переходе с главной в материал К2 теперь вообще Itemid не присваевается...Еще заметил одну штуку у меня есть категория Новости, в ней подкатегория допустим Финансы, пункты меню прописаны и к главной категории Новости (Вывод последних материалов К2 ссылка index.php?option=com_k2&view=latest&layout=latest&Itemid=130) и к дочерной категории Финансы (Вывод последних материалов К2 ссылка http://new.vodolaga.com/index.php?option=com_k2&view=latest&layout=latest&Itemid=135) получаеться что если я перейду из подкатегории то материалу присвоится ID 135, а если с главной категории то 130....Как избежать дублей и решить всетаки проблему с главной страницей?

Вот кстати у человека тоже самое горюшко http://joomlaforum.ru/index.php/topic,280752.0.html
« Последнее редактирование: 02.10.2014, 19:08:37 от Toliamba »
*

Toliamba

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Активный пункт меню
« Ответ #11 : 03.10.2014, 12:17:46 »
Итак, разобрался сам, хотя че как и не понял  :D
Весь сыр в К2, Переназначил главную как К2 » Новые материалы от одного или нескольких пользователей или категорий
А меню отвечающие за вывод новостей, и под категорий новостей в К2 » Категории и все стало на свои места...
Всем спасибо за обсуждения, прошу тему перенести в соответсвующий форум К2
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Невозможно создать пункт меню K2

Автор vittorio

Ответов: 16
Просмотров: 3919
Последний ответ 24.01.2022, 16:16:31
от kot488
Не сохраняются параметры в пункте меню категория K2

Автор pyh

Ответов: 5
Просмотров: 2313
Последний ответ 21.09.2021, 04:56:14
от Alexs44
Меню Хлебные крошки не отображает все категории K2

Автор arnoldovich

Ответов: 1
Просмотров: 1130
Последний ответ 11.07.2019, 13:50:17
от arnoldovich
Запретить k2 самому формировать ссылки на категории, без пункта меню

Автор TYMON

Ответов: 9
Просмотров: 1241
Последний ответ 03.07.2019, 11:01:46
от kern.USR
Убрать пункт категории с хлебных крошек k2

Автор HolySong

Ответов: 0
Просмотров: 886
Последний ответ 29.01.2019, 18:17:35
от HolySong