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

Web-Simple

  • Захожу иногда
  • 274
  • 1 / 0
Карта сайта есть (xMap), robots.txt составлен грамотно (ничего не нужного не закрыто), однако материалы из блога не индексируются уже более месяца, со дня добавления сайт в Яндекс-Вебмастер. На старой версии Joomla (1.5), таких проблем не было. Однако Joomla 2.5 очевидно содержит в себе такой костыль. Не индексируются именно материалы выводимые блогом, материалы привязанные к пунктам меню прекрасно влетели в индекс самостоятельно, так же как и страницы блога. Кто сталкивался с этой проблемой? И смог её успешно разрешить.
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Сайт еще молодой. Подождите. Я так понимаю, на эти материалы прямых ссылок из меню нет... Они действительно индексируются с тормозом. Недельки на 2 позже, чем обычные.

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

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
robots.txt составлен грамотно
совет
поставьте директиву для Яндекса в сама НАЧАЛЕ в роботс, у меня быстрее Яндекс идексирует, чем Google..возможно поэтому
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

Web-Simple

  • Захожу иногда
  • 274
  • 1 / 0
Сайт еще молодой. Подождите. Я так понимаю, на эти материалы прямых ссылок из меню нет... Они действительно индексируются с тормозом. Недельки на 2 позже, чем обычные.

Да и не весь сайт Яндекс индексирует за один заход.
Знаю про это, однако сайт , был добавлен в индекс в конце марта и до сих пор страницы блога не были проиндексированы, хотя бот с того момента заходит на сайт регулярно (несколько раз в неделю). Что-то мне подсказывает, что сами по себе они так и не проиндексируются...
Выкладывают robots.txt этого сайта.
Код
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /component/*
Disallow: /component/search/
Disallow: /includes/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: /*pechat.html
Disallow: /*pdf.html
Disallow: /index2.php
Disallow: /index.php
Disallow: /*?
Disallow: /*%
Disallow: /*&
Host:сайт

Allow:/index.php?option=com_xmap&sitemap=1&view=xml

Sitemap: http://сайт.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1

User-agent: Yandex
Crawl-delay: 10
совет
поставьте директиву для Яндекса в сама НАЧАЛЕ в роботс, у меня быстрее Яндекс идексирует, чем Google..возможно поэтому
Попробую поставить Яндекс вначале, о результатах отпишу.
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Web-Simple сюда свой роботс выложите

вижу вы эту тему смотрите :)
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

Web-Simple

  • Захожу иногда
  • 274
  • 1 / 0
Да смотрел, да robots.txt формировал в соответствии с рекомендациями, взятыми в том числе и на этом форуме ;D
P.S. Есть ли ещё у кого, какие-либо мысли на этот счёт? Как у вас проходит индексация материалов блога? Проблема реальная, уже на втором сайте с ней столкнулся.
« Последнее редактирование: 08.05.2012, 15:55:32 от Web-Simple »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Google не индексирует страницы через ajax ссылки

Автор illimited

Ответов: 0
Просмотров: 1363
Последний ответ 31.03.2022, 23:53:05
от illimited
Яндекс и его роботы

Автор Захар

Ответов: 2
Просмотров: 800
Последний ответ 22.10.2021, 09:52:59
от Захар
JL NO doubles не работает с Яндекс Маркетом

Автор espam

Ответов: 0
Просмотров: 845
Последний ответ 27.06.2021, 22:54:24
от espam
Яндекс не индексирует вообще картинки с сайта

Автор Девушка с веслом

Ответов: 6
Просмотров: 1252
Последний ответ 10.05.2021, 17:21:18
от xpank
Перенаправление URL и поисковики (не так индексирует поиск)

Автор Benderalfa

Ответов: 4
Просмотров: 987
Последний ответ 15.07.2019, 22:27:36
от Benderalfa