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

bonusru

  • Новичок
  • 2
  • 0 / 0
Сайт на шаблоне Joomla rosarmastroy.ru , в верхнем меню необходимо сделать пункт "Прайс" красным, в CSS не разобрался, либо меняется все, либо ничего . Прошу помощи
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: css
#item-112 span {color:#f00}
*

bonusru

  • Новичок
  • 2
  • 0 / 0
Код: css
#item-112 span {color:#f00}
Спасибо большое, а можно сделать, чтоб при наведении был красный цвет чуть темнее
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: css
#item-112 a:hover span {color:#c00}
*

ramzes6961

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
А куда вставлять этот код?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
В любой подключенный css-файл
*

ramzes6961

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
https://yadi.sk/d/dl3Jsjucd373u вот ссылка на скачивание CSS файла, может посмотрите  у меня не получаеться((
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
https://yadi.sk/d/dl3Jsjucd373u вот ссылка на скачивание CSS файла, может посмотрите  у меня не получаеться((
Что не получается ? Вставить строку в конец файла ?
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

ramzes6961

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Что не получается ? Вставить строку в конец файла ?
Дело в том что ничего не происходит
*

ramzes6961

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
<ul class="art-hmenu"> <li class="item-129 current active"><a class=" active" href="/">Главная</a></li>  <li class="item-131"><a href="/index.php/ct-menu-item-3">Мужчины</a></li>  <li class="item-133"><a href="/index.php/ct-menu-item-5">Женщины</a></li>  <li class="item-135"><a href="/index.php/ct-menu-item-7">Дети</a></li>  <li class="item-137"><a href="/index.php/ct-menu-item-9">Обувь</a></li>  <li class="item-139"><a href="/index.php/ct-menu-item-11">Бренды</a></li>  <li class="item-145"><a class="color:#f00;" href="/index.php/rozhdestvo">Рождество</a></li>  <li class="item-141 last-child"><a class="#item-141 span {color:#f00}" href="/index.php/ct-menu-item-13">SALE</a></li>  <li class="justify-helper"></li> </ul>

может поможет разобраться, мне надо рождество в зеленый а sale в красный
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
<li class="item-145"><a class="color:#f00;" href="/index.php/rozhdestvo">Рождество</a></li>
<li class="item-141 last-child"><a class="#item-141 span {color:#f00}" href="/index.php/ct-menu-item-13">SALE</a></li>

может поможет разобраться, мне надо рождество в зеленый а sale в красный
Это что за код такой ? Это вы сами в class вписали цвет ?
И в CSS у вас запись Неправильная
li.item-141 span
{
color: #f456445
}
Попробуйте написать так
.item-145 a {
color: green;
}
.item-141 a {
color: red;
}
А лучше дайте ссылку на сайт если есть
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Алиас пункта меню совпадает с именем подкаталога в каталоге с сист.файлами

Автор Andrey N.

Ответов: 14
Просмотров: 3585
Последний ответ 07.10.2021, 23:57:15
от Garrr
Главное меню

Автор Анастасия87

Ответов: 7
Просмотров: 1803
Последний ответ 21.05.2021, 08:40:40
от arma
Как сократить вертикальное расстояние между меню сайта и баннером?

Автор MultiMatrix83

Ответов: 2
Просмотров: 1517
Последний ответ 16.02.2020, 19:30:25
от MultiMatrix83
Редактирование Модуля - в меню не удаляется пункт

Автор bovinkm

Ответов: 4
Просмотров: 1695
Последний ответ 16.08.2019, 15:00:22
от bovinkm
Не выбирается материал в Joomla при создании меню. Как быть?

Автор elliotos

Ответов: 8
Просмотров: 3312
Последний ответ 09.07.2019, 16:38:31
от cerxx