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

Sanchesko

  • Захожу иногда
  • 104
  • 13 / 0
Господа помогите пожалуйста. С Joomla столкнулся недавно поэтому много чего не знаю. Но вопрос в принципе о простом . Залил свой сайт на Yutex , совсем недавно (версия Joomla 1.5.9) вроде всё хорошо возникали вопросы они отвечали без проблем ,но думаю сейчас они в ступоре так как сутки молчат на запрос . А заключается он вот в чём.
Залил через FileZillu новый файл robots.txt вот такого плана:

User-agent: Yandex
Disallow:
Host: www.мой сайт.ru

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/

Sitemap: http://www.мой сайт.ru/sitemap.xml

Соответственно добавил ччерез фтп файл sitemap .
Как бы всё просто и ясно , но потом захожу в панели веб мастеров Yandex и Google и вижу отображение моего robots в таком виде:

User-agent: *
# Added by add_robots.sh
Crawl-delay: 10
Request-rate: 1/10
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/


User-agent: Yandex
# Added by add_robots.sh
Crawl-delay: 10
Request-rate: 1/10
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/

Да еще при этом указывает на

    Результаты проверки robots.txt
    Используемые секции

   Строка   Сообщение   
   
4: Request-rate: 1/10
   
Обнаружена неизвестная директива
   
   
25: Request-rate: 1/10
   
Обнаружена неизвестная директива.
Вот я задал этот вопрос на yutex они сутки молчат , не знаю что делать и в чем проблема . Сайт еще не проиндексирован поисковиками , но я думаю не в этом причина. Помогите разобраться , а то бяда. !
Кстати извините если подобная тема была ,но я полазил по форуму есть только -как написать robots , а с похожей проблемой тем не видел. Да забыл еще добавить , что делал сайтмап через сервис на сайте sitemapnow.ком ( но думаю они ни как не могли мне куда-то в неизвестную дериктиву файл роботс засунуть , что я его найти не могу ). Тот файл какой я заливал , после этого скачивал , смотрел всё нормуль , через панель искал в базе по поиску - думал , может где еще лежит , который видит поисковик и ничего не нашёл ). Так что хелп ми пожалуйста , если кто знает ответ на данный вопрос.
« Последнее редактирование: 01.05.2011, 11:28:08 от Sanchesko »
Русский способ настройки это нажатие всех кнопок устройства одновременно . Помогает реально ... успокоиться.
*

Sanchesko

  • Захожу иногда
  • 104
  • 13 / 0
Ну вижу помощников нет. Наконец на 2 сутки объявилась поддержка хоста и попросила перепроверить данные , ну в яндексе оказалось всё нормуль , а вот Google не обновляет при перезагрузке файлы поэтому жду следующего захода бота - пока картина таже, но думаю после загрузки файла всё должно быть ок. Спросил у хостера в чём была причина , он сиротливо отмалчиваеться - по всей вероятности у Yutex есть какая-то блокировка ( ну типо как у ucoz на месяц когда акк регаешь , стоит запрет на индексацию ) или еще чего..
Не знаю поможет это расследование кому или нет , хотя в теме про правильный robots.txt я видел пару сообщений с такими же скринами и походу народ был доволен :) своими файлами , не удивляясь что у них какие то дерективы левые.
Кстати всех с праздниками - Труда и Победы .
Русский способ настройки это нажатие всех кнопок устройства одновременно . Помогает реально ... успокоиться.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Роботу Googlebot заблокирован доступ в файле robots.txt

Автор illimited

Ответов: 3
Просмотров: 3749
Последний ответ 29.05.2022, 14:57:55
от web1
Правильный robots.txt? [вопросы/обсуждение]

Автор wishlight

Ответов: 447
Просмотров: 208037
Последний ответ 20.11.2021, 16:53:49
от Byzi
Как лучше прописать robots.txt?

Автор web1

Ответов: 2
Просмотров: 1103
Последний ответ 25.07.2021, 21:38:12
от web1
Разные robots.txt

Автор yyyuuu

Ответов: 7
Просмотров: 1143
Последний ответ 14.01.2021, 14:06:58
от rsn
Языки /en/ /ru/ проблема с входом в админку и редиректит на site.r/ru/robots.txt

Автор HolySong

Ответов: 0
Просмотров: 1026
Последний ответ 10.07.2020, 13:12:46
от HolySong