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

vadiimm

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Я создал раздел потом категорию ---материалы.
Далее создаю пункт меню --"архив номеров" выбираю тип  "стандартный шаблон раздела.
Захожу на сайт кликаю "архив номеров" выводится список номеров ввиде ссылок(т.е. выводится список категорий), но при нажатии на ссылку(категорию) перехода на материалы хранящиеся в категории не происходит. (выводится "фильтр по заголовку...количество строк и т.д.,и пусто номеров нет. Может это как то по другому можно сделать?
*

vadiimm

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #1 : 09.07.2009, 14:07:50 »
Есть хорошие люди на форуму?
ответьте
*

UserAleks

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #2 : 09.07.2009, 15:36:06 »
Возможная проблема в том что ты создал Раздел - Категорию
а ссылку сделал на Архив
А документов в архиве у тебя нет!!! - вот и не показываються!
*

vadiimm

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #3 : 09.07.2009, 16:33:18 »
Ссылку я нигде не устанавливал, вроде по логике и не надо нигде устанавливать.
Пишу последовательность своих действий вроде все логично но результатата нет:

1) создаю меню «Главстрой»
2)захожу в менеджер модулей и включаю его, оно появляется на главной странице
 3) создаю раздел- «Месяц ИЮНЬ»
4) Создаю Категорию «№1»
5) создаю материал №1 «Все о подснежниках»
6) создаю материал №1 «Все о мухоморах»
7) создаю в меню «Главстрой», пункт меню выбираю «Стандартный шаблон раздела»
называю «статьи»
8) захожу на главную вижу
Главстрой
  Статьи
Жму на статьи, открывается на основной странице
Месяц Июнь
№1 (материалы 2)
Нажимаю №1 она как ссылка, и НЕ ОТКРЫВАЮТСЯ ДВА МАТЕРИАЛА, а открывается:
фильтр по заголовку                           количество строк.

И больше ничего.

Подскажите, что может быть.



*

vadiimm

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #4 : 09.07.2009, 16:51:38 »
материалы конечно публикую
*

Lobo

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #5 : 09.07.2009, 22:16:02 »
vadiimm , сделай так:
-материал №1 «Все о подснежниках»
и
- материал №1 «Все о мухоморах»
создай в  Категории «№1».

 Категорию «№1» с материалами - в раздел "месяц июнь"
потом создашь пункт меню "статьи" и выбираешь "Шаблон списка категории" затем выбираешь "месяц июнь"/Категория «№1» сохраняешь,
 после того как это сделаешь и кликнешь  на  "статьи" отобразится стр. с заголовками материалов, кликнешь по заголовку - отобразится статья.

По моему так тебе нужно.
Да... на странице  все равно выйдет  фильтр по заголовку и пр. ,ну это легко убирается в админке.
« Последнее редактирование: 10.07.2009, 00:03:47 от Lobo »
*

UserAleks

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Разделы- Категории -Материалы
« Ответ #6 : 10.07.2009, 09:56:57 »
Можно сделать все намного проще и оставить настройки по умолчанию!

Проблема в том, что боитесь тестировать систему и делать ошибки.
Надо просто понять как работает система и все будет ГУД!

В твоем случае делай так:

В Главном меню создай вот такую схему

Главная
-  Раздел / Блог (Цветы)
- - Категория / Блог (Ромашки)
- - - а тут будут все материалы (это не надо указывать в меню)
- - Категория / Блог (Тюльпаны)
- - - а тут будут все материалы (это не надо указывать в меню)
...

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

Для чего нужны разделы и категории?

Автор lost

Ответов: 10
Просмотров: 7018
Последний ответ 26.04.2021, 15:12:31
от altvvc
Как вывести все категории всех разделов на одной странице?

Автор genius

Ответов: 4
Просмотров: 2227
Последний ответ 22.01.2019, 08:38:30
от genius
Перестал сохранять материалы и модули

Автор Igoritaly

Ответов: 2
Просмотров: 1172
Последний ответ 11.08.2017, 13:37:48
от Igoritaly
Заголовок страницы вида Имя материала / имя категории / имя раздела /

Автор rubasket

Ответов: 2
Просмотров: 18919
Последний ответ 24.03.2017, 01:13:50
от mbgr
Не отображаются материалы и ссылки на сайте (joomla 1.5)

Автор МарияЛ

Ответов: 1
Просмотров: 1772
Последний ответ 18.03.2017, 19:22:31
от rebus