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

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
здесь на форуме прочитал что тиц не влияет на позицию выдачи, и возникает вопрос а что влияет то? !
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
поиск по яндексу - Яндекс вам расскажет))
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
1.колличество ссылок на твой ресурс с других сайтов!
2.контент сайта
3.структура сайта
4. его код
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
по важности ссылки на первом месте?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
нет

на первом месте - контент, правильно оптимизированный под поисковые системы

эта тема большая, учите SEO - тут парой слов не обойдешься.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
по важности ссылки на первом месте?
Очень большое значение имеют но без соответствующего контента они практически бесполезны! представь, на твой сайт ссылаются по ключевому слову "загородная недвижимость" а после перехода контернт о автомобилях....
так же имеет БОЛЛЬШУЮ роль "вес" ссылок!
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

Floran

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
1.колличество ссылок на твой ресурс с других сайтов!

А ТИЦ это не те же ссылки с других сайтов на твой сайт?
Тогда както не ясно почему ж ТИЦ не влеяет на выдачу
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
А ТИЦ это не те же ссылки с других сайтов на твой сайт?
Тогда както не ясно почему ж ТИЦ не влеяет на выдачу
тут имеется ввиду колличество ссылок по данному ключевому слову!
поэтому сам ТИЦ не влияет
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Главная просела в выдаче

Автор Stasweb

Ответов: 2
Просмотров: 3653
Последний ответ 29.03.2025, 15:24:35
от azm1n
Поделитесь компонентом JC Yandex Turbo

Автор khan-alex

Ответов: 13
Просмотров: 3283
Последний ответ 28.05.2018, 10:15:10
от ProtectYourSite
mc.yandex.ua постоянная загрузка

Автор DooM753

Ответов: 4
Просмотров: 1879
Последний ответ 04.07.2017, 13:00:54
от DooM753
Не работает тег description при выдаче результатов в поисковике

Автор tao2en

Ответов: 3
Просмотров: 1985
Последний ответ 25.01.2017, 02:55:24
от tao2en
Есть ли pinger yandex и/или Google для Joomla

Автор KSS

Ответов: 14
Просмотров: 1608
Последний ответ 02.12.2016, 01:13:43
от voland