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

schreier

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Тысячи 404 ошибок от Googlebot
« : 17.04.2012, 13:17:54 »
Добрый день!
Несколько дней назад началась подозрительная активность. За несколько часов появляется тысячи 404 ошибок в списке sh404SEF. Причем ссылки не мои, а с чужого сайта, такого вида:
Цитировать
/63658-avstraliya-australia-2008-hdrip.html
/63700-priroda-na-vash-rabochij-stol-3.html
/63638-rezhisser-il-regista-2007-dvdrip.html
Такое впечатление что-то кто-то постоянно хочет перейти по этим ссылкам на мой сайт, и естественно получает 404, так как у меня их никогда не было.
По этому пути administrator/components/com_sh404sef/logs - нашел лог файл куда пишется кто обращался к сайту по этим ссылкам и увидел что это Googlebot
Цитировать
2012-04-17   11:02:09   Page not found (404)   66.249.66.232   crawl-66-249-66-232.googlebot.com   Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)   GET   /63584-clonedvd-mobile-1700-final.html
2012-04-17   11:02:14   Page not found (404)   66.249.66.232   crawl-66-249-66-232.googlebot.com   Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)   GET   /6359-still-life-2-2009rusger.html
2012-04-17   11:02:20   Page not found (404)   66.249.72.217   crawl-66-249-72-217.googlebot.com   Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)   GET   /63576-ona-poluchila-odobrenie.html
2012-04-17   11:02:24   Page not found (404)   66.249.66.232   crawl-66-249-66-232.googlebot.com   Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)   GET   /63593-creamy-birthday-bash-chast-4-final.html
2012-04-17   11:02:29   Page not found (404)   66.249.72.217   crawl-66-249-72-217.googlebot.com   Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)   GET   /63582-odinokij-muzhchina-a-single-man-2009dvdrip700mb.html

Что делать подскажите? Почему бот идет по ссылкам которых у меня никогда на сайте не было?
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Тысячи 404 ошибок от Googlebot
« Ответ #1 : 17.04.2012, 13:26:03 »
Что делать подскажите? Почему бот идет по ссылкам которых у меня никогда на сайте не было?
потому что они есть на другом сайте, а то что гуглбот ходит по ссылкам так это нормально
кто-то на вас случайно или намеренно проставил несуществующие ссылки
*

schreier

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Тысячи 404 ошибок от Googlebot
« Ответ #2 : 17.04.2012, 13:37:02 »
Все равно не пойму, почему бот должен идти по ссылкам которые никогда не были у меня сайте, просто берет и подставляет чужие ссылки к моему домену? Вы считаете нормальным эту ситуацию? Меньше чем за час 586, 404 ошибок такого же характера.
« Последнее редактирование: 17.04.2012, 13:40:51 от schreier »
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Тысячи 404 ошибок от Googlebot
« Ответ #3 : 17.04.2012, 13:42:51 »
просто берет и подставляет чужие ссылки к моему домену
что значит "берет и подставляет"?
бот сам ничего подставлять не может, но только берет то что есть, а если есть на вас такие ссылки - то вот он и ходит по ним.
например, я поставлю ссылку - http://google.ru/abrakadabra гуглбот или любой другой бот пройдет по ней и получит ответ 404 - смысл ясен?
разбирайтесь с тем администратором сайта, который ставит на вас эти ссылки.

или пример в студию...
*

schreier

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Тысячи 404 ошибок от Googlebot
« Ответ #4 : 17.04.2012, 13:51:43 »
В первом посте я привел примеры. Но те ссылки не отображаются в Google, собственно и домен которому они должны принадлежать определить не получается.

/63658-avstraliya-australia-2008-hdrip.html
/63700-priroda-na-vash-rabochij-stol-3.html
/63638-rezhisser-il-regista-2007-dvdrip.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Огромное количество 404 ошибок на непонятные адреса

Автор d.voroncov

Ответов: 1
Просмотров: 2817
Последний ответ 18.01.2016, 00:01:12
от dmitry_stas