Новости 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 Ответов
  • 2007 Просмотров
*

podlodka

  • Захожу иногда
  • 101
  • 1 / 0
META данные
« : 09.04.2013, 22:14:16 »
не спеша, долгое время, наполнял сайт статьями. при этом не особо задумывался о оптимизации. и вот спустя некоторое время, решил сделать внутреннюю перелинковку между статьями по ключевым словам. и тут то возникла проблема в том, что в большинстве статей нет ни META keywords, ни META description, а на основе META keywords работают все модули и плагины. И вот встал вопрос, как малой кровью решить данную проблему?
можно ли использовать SEO-Generator? или есть другие варианты?
*

Go-destroy

  • Захожу иногда
  • 221
  • 4 / 1
Re: META данные
« Ответ #1 : 18.04.2013, 21:55:42 »
я в 600 статья в ручную прописывал.
*

oshpz

  • Захожу иногда
  • 149
  • 5 / 0
Re: META данные
« Ответ #2 : 26.04.2013, 14:54:55 »
Можно не заморачиваться на счет прописывания ключевых слов. Достаточно просто сделать мета-описание страниц. Рекомендую ознакомится с очень познавательным положением от microsoft http://www.bing.com/webmaster/help/webmaster-guidelines-30fba23a

По этой же схеме работают и другие поисковики.


PS. Не поленитесь прочитать всю статью до конца  ;)
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 119 / 9
Re: META данные
« Ответ #3 : 26.04.2013, 16:07:56 »
oshpz, вы не поняли проблемы. Дело не в том, прописывать или нет, дело в том что прописать Мета-теги необходимо для перелинковки сайта. Как вы, например, собираетесь выводить модуль похожих материалов без мета-тегов?
*

Go-destroy

  • Захожу иногда
  • 221
  • 4 / 1
Re: META данные
« Ответ #4 : 26.04.2013, 18:40:46 »
Можно не заморачиваться на счет прописывания ключевых слов. Достаточно просто сделать мета-описание страниц. Рекомендую ознакомится с очень познавательным положением от microsoft http://www.bing.com/webmaster/help/webmaster-guidelines-30fba23a

По этой же схеме работают и другие поисковики.


PS. Не поленитесь прочитать всю статью до конца  ;)
SEO-Generator думаю подойдет он вытаскивает ключевые слова из текста.  и мета теги делает. но я не люблю стороние компоненты, поэтому все вручную преписывал, за 2 часа 600 статей обработал)
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: META данные
« Ответ #5 : 29.04.2013, 09:37:06 »
Да мы поняли. А зачем вручную, если можно плагинами?
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: META данные
« Ответ #6 : 02.05.2013, 03:35:00 »
Да мы поняли. А зачем вручную, если можно плагинами?
плагины делают не так...+ нагрузка
вручную надежнее все же.
используя плагин в keywords попадает черти что, - так что блэклист получается безразмерным
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Re: META данные
« Ответ #7 : 05.05.2013, 23:23:02 »
купил лицензилонный seo generator
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT SEO Meta templates плагин сео-шаблонов для Joomla

Автор sergeytolkachyov

Ответов: 25
Просмотров: 5116
Последний ответ 24.11.2023, 10:24:11
от sergeytolkachyov
meta-description не отображается в Google

Автор Игарь

Ответов: 39
Просмотров: 7194
Последний ответ 20.11.2021, 18:17:12
от Byzi
Структурированные данные

Автор iryewa

Ответов: 2
Просмотров: 867
Последний ответ 18.02.2018, 14:58:22
от iryewa
В коде страницы meta name="robots" повторяется 2 раза но с разными значениями

Автор demyan

Ответов: 3
Просмотров: 1189
Последний ответ 12.10.2016, 16:32:53
от demyan
Микроразметка (структурированные данные) на Joomla 3

Автор saschka

Ответов: 15
Просмотров: 8330
Последний ответ 30.05.2016, 22:48:31
от dialit