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

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
здравствуйте у меня такой вопрос сайт посвящен стихотворениям, стихи я копирую с других сайтов. как это будет влиять на поисковую выдачу, получается контент не уникальный. что с этим можно сделать?
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Уникализировать. Хотя как это делать со стихами, не представляю. Там та нельзя менять текст.
Мне кажется что со стихами не выйдет печатать с других сайтов и делать текст уникальным.
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Вот я про тоже то есть получается мой сайт никогда не будет подниматься в поисковиках?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Стихи уникальными сделать сложно (если не писать свои конечно), а все таки можно поднять сайт в поисковиках, вы наберите в поисковике любую строчку четверостишия и увидите, что море сайтов в поиске с одним и тем же стихом :) проведите анализ погуляйте посмотрите как делают другие вебмастера, сделайте для себя кое какие выводы :)
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Как вариант, можно самому писать аннотации к стихам. 
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Как вариант, можно самому писать аннотации к стихам. 
Ну зачем вы кашу разжевываете, пусть ТС сам все изучит, а то таким макаром он постоянно будет спрашивать не развиваясь :)
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
А что бы больше не было глупых вопросов. ;)
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
А что бы больше не было глупых вопросов. ;)
они будут потому как разжеванная каша, как правило подсаживает :)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Да, я – не Пушкин, не Маяковский.
Мой слог простой и совсем не броский.
Но ради денег – на всё готов!
Рожу на вскидку вагон стихов!  

Возьму уникальную тему,
(к примеру, про синтез белков).
И Яндекс точно оценит
Набор уникальных слов.
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Ну... после этого ТС просто обязан нанять effrit в качестве автора.
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Ого сколько ответов сразу. Я читал про замену русских букв аналогичными английскими, но кто как говорит, кто то говорит помогает кто то говорит нет. Для меня вопрос не глупый. С обыкновенными стихами понятно что мало кто из людей будет вводить четверостишье стиха, все пишут "Стихи о любви, про любовь и так далее" а вот стихи классиков - многие пишут начало стиха.

p.s Что означает аббревиатура ТС?
« Последнее редактирование: 07.11.2010, 15:51:04 от farmay »
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
А что бы больше не было глупых вопросов. ;)
Ну вот, а я про что и говорил :)
Я читал про замену русских букв аналогичными английскими
Это было ой как давно, сейчас за это или АГС или Бан от яндекса можно схлопотать!
С обыкновенными стихами понятно что мало кто из людей будет вводить четверостишье стиха
Этим я хотел сказать что даже копипасте индексируются, только осталось вам провести анализ почему так происходит, хотя господин GDV и так все разжевал немного выше
---
p.s. ТС - автор темки (не буду кидатся терминами во избежании в послейдующем дополнительных вопросов не касающихся данной темы :) )
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Спасибо. Все себя такими гуру считают  ^-^ Я правда считаю вопрос не глупым.)
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Да не кто себя гуру не считает.
Сам ни разу стихами не занимался. Просто логику включил. Так что лично я точно профан в таких вопросах.
Просто небольшие шевеления в мозгах активировал, и как видно угадал.
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Да не кто себя гуру не считает.
Сам ни разу стихами не занимался. Просто логику включил. Так что лично я точно профан в таких вопросах.
Просто небольшие шевеления в мозгах активировал, и как видно угадал.
Молодец +1 за включение мозга :)
Спасибо. Все себя такими гуру считают  ^-^ Я правда считаю вопрос не глупым.)
ну не совсем гуру, даже рядом не стою :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Серпхант – инструменты анализа и мониторинга сайтов

Автор Serphunt

Ответов: 2
Просмотров: 2789
Последний ответ 26.01.2023, 09:55:23
от Serphunt
Массовая проверка позиций сайтов. Как?

Автор dm-krv

Ответов: 10
Просмотров: 3807
Последний ответ 26.09.2022, 18:03:40
от Bobbi86
Чем вы веделяетесь из масы других сайтов?

Автор web1

Ответов: 0
Просмотров: 743
Последний ответ 15.02.2021, 17:39:06
от web1
Продвижение сайтов

Автор rkron

Ответов: 7
Просмотров: 3827
Последний ответ 02.06.2019, 06:00:59
от rkron
Амп страницы, для каких сайтов подходят?

Автор korkka44

Ответов: 5
Просмотров: 1222
Последний ответ 20.04.2018, 17:27:28
от smallplushbear