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

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
description keywords ДЛЯ КОНКРЕТНЫХ СТАТЕЙ прописать можем ... а как это сделать для  для "Шаблон блога категории" ?
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

exopper

  • Новичок
  • 9
  • 1 / 0
Только что в ходе заполнения сайта появился аналогичный вопрос! Главное, ни  Google, ни Yandex не знают ответа. Неужто все веб-мастера не встретились с такой ситуацией?  :o
*

exopper

  • Новичок
  • 9
  • 1 / 0
Как я понял из молчания, никто не знает ответа. И решить поблему ее знач никто не хочет? будем и дальше молчать и тупить своими сайтами без грамотного оформления метаданных, народ?
*

sharp

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

exopper

  • Новичок
  • 9
  • 1 / 0
Печально, что нативными средствами жумлы этого сделать оказалось нельзя. Но как обычно спасло огромное комьюнити этой крутой cms)) Патчей и компонентов, позволяющих решить сабж оказалось предостаточно!
*

timson

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Например? Я вот для всего нашел, joomSEO и JoomSEF решают многое(я пока еще на стадии внедрения), но вот у меня гл. страница-шаблон блога категорий, а каталог-главная страница виртуемарта. На них обоих description и keywords пустые. Хотя в категориях и товарах все заполняется автоматом.
*

andreyy05

  • Новичок
  • 9
  • 0 / 0
Так может кто подскажет, как же все таки задать meta description для шаблона блога раздела или категории? какой патч нужно использовать? я так ничего и не нашел.
Выручайте
*

Joober

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Tag Meta задает title, description, keywords + название сайта можно добавлять в тайтл, очень легким способом.

Ставишь компонент, плагин, включаешь. Дальше просто создаются пункты, с соответствующими url-ами, и для них соответственно задаются все теги. И не забываем к url добавлять /*$ в конце, иначе правила распространятся на все вложенные пункты.

То есть, например, для раздела будет так:  /section/*$   для категории так:  /section/category/*$

http://extensions.joomla.org/extensions/site-management/seo-a-metadata/7124
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

meta-description не отображается в Google

Автор Игарь

Ответов: 39
Просмотров: 7193
Последний ответ 20.11.2021, 18:17:12
от Byzi
Не получается поменять description на главной странице Joomla 3.

Автор illimited

Ответов: 11
Просмотров: 1548
Последний ответ 21.12.2020, 14:39:49
от illimited
Закрывать или нет шаблон сайта от поисковиков?

Автор Dim

Ответов: 4
Просмотров: 1126
Последний ответ 21.11.2018, 21:06:29
от Septdir
Блог категории и SEO

Автор User82

Ответов: 1
Просмотров: 984
Последний ответ 13.11.2017, 08:45:56
от Taatshi
Как категории скрыть от индексации?

Автор Артём 2014

Ответов: 3
Просмотров: 1536
Последний ответ 04.05.2017, 17:06:44
от recived