Влияет ли SEF на продвижение сайта
Проголосовало пользователей: 12
👩💻 Как триггерить события для плагинов на манер 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👩💻 Joomla признана лучшей CMS 2025 в конкурсе 20i FOSS Awards.Мероприятие 20i FOSS Awards, организуемое хостинг компанией 20i, призвано помочь в популяризации программного обеспечения с открытым исходным кодом.В этом году определены победители конкурса, и Joomla снова признана лучшей CMS.В тройку победителей голосования так же вошли WordPress и Strapi.Поздравляем всех проголосовавших и хотим выразить благодарность за многолетнюю поддержку проекта! https://www.20i.com/foss-awards/winners#joomla #community
Проголосовало пользователей: 12
Как найти и определить сервис раскрутки сайта?
Автор Gosha5767 |
Ответов: 0 Просмотров: 4679 |
![]() от Gosha5767 |
Как вывести в сниппете название статьи, а потом название сайта?
Автор gorbi_U |
Ответов: 0 Просмотров: 1092 |
![]() от gorbi_U |
Яндекс не индексирует вообще картинки с сайта
Автор Девушка с веслом |
Ответов: 6 Просмотров: 1248 |
![]() от xpank |
Сервис или программа для оценки позиций сайта
Автор dron |
Ответов: 12 Просмотров: 8268 |
![]() от v42bis |
Продвижение по региону
Автор dmtn |
Ответов: 6 Просмотров: 1019 |
![]() от gartes |