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

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Добрый день. Может неправильно формулирую проблему, но суть такова, что после установки календаря и компонента афиши, в индексе появляется куча ненужных ссылок.
 Сcылки имеют вид:
/component/rseventspro/day/12-24-2017/132
/component/rseventspro/day/12-28-2017/132
/component/rseventspro/day/12-29-2017/132
и так далее
а еще:
/component/rseventspro/печать/1-it-s-my-birthday
/component/rseventspro/печать/3-retronika

Пару дней назад пыталась закрыть их добавлением строчки в robots вида:
Disallow: /component/rseventspro/
 При проверке подобных страниц в панели Яндекс показывается что они закрыты. Но вот сегодня при обновлении яндексом страниц в поиске, все они всё так же присутствуют как добавленные, то есть со значком +.
 
 Где моя ошибка? Или через роботс вообще невозможно закрыть подобное?
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: В robots.txt закрыть компонент
« Ответ #1 : 19.12.2017, 23:11:29 »
Ну во первых robots это лишь рекомендация.
Во вторых два дня для обновления индекса это очень мало, о проблемах можно говорить через пару месяцев.

Теперь поясню суть проблемы. Если есть ссылка некорректная закрывай не закрывай поисковик ее проиндексирует, если вы закрыли в роботсе но не исправили место где у вас идет потеря меню Joomla, то это вам ничего не даст. Для начала надо исправить проблему с меню, а потом уж все остальное.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #2 : 20.12.2017, 00:00:28 »
Если есть ссылка некорректная
А в чем некорректность ссылки? Это модуль календаря, а компонент rsevents. Но вот ссылок этих, к тому же абсолютно мне не нужных в поиске - огромное количество(

По поводу меню вообще не понятно...
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: В robots.txt закрыть компонент
« Ответ #3 : 20.12.2017, 00:10:27 »
ссылка формата: /component/rseventspro/day/12-28-2017/132
свидетельствует о потере item меню... то есть ссылка некорректна.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: В robots.txt закрыть компонент
« Ответ #4 : 20.12.2017, 00:11:59 »
Ну во первых robots это лишь рекомендация.
Во вторых два дня для обновления индекса это очень мало, о проблемах можно говорить через пару месяцев.
Да ладно рекомендация, на прошлой работе SEO-шник в роботсе что то не так закрыл, в итоге сайт который год раскручивали за неделю вылетел полностью из индекса
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: В robots.txt закрыть компонент
« Ответ #5 : 20.12.2017, 00:17:41 »
Да ладно рекомендация, на прошлой работе SEO-шник в роботсе что то не так закрыл, в итоге сайт который год раскручивали за неделю вылетел полностью из индекса
дубли удаляются из индекса очень медленно... ) в любом случае изменения в поиске происходят не за 1-2 дня.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #6 : 20.12.2017, 00:38:50 »
ссылка формата: /component/rseventspro/day/12-28-2017/132
свидетельствует о потере item меню... то есть ссылка некорректна.
Но а как же тогда похожее, типа:  /component/tags/  или /component/search/.  С ними же вроде решается при помощи robots.txt?
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: В robots.txt закрыть компонент
« Ответ #7 : 20.12.2017, 01:01:58 »
Но а как же тогда похожее, типа:  /component/tags/  или /component/search/.  С ними же вроде решается при помощи robots.txt?
а кто вам сказал что это нормальные ссылки??   ^-^
Это именно не привязанные к меню компоненты или происходит потеря item меню.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
Re: В robots.txt закрыть компонент
« Ответ #8 : 20.12.2017, 06:26:24 »

Пару дней назад пыталась закрыть их добавлением строчки в robots вида:
Disallow: /component/rseventspro/
 При проверке подобных страниц в панели Яндекс показывается что они закрыты. Но вот сегодня при обновлении яндексом страниц в поиске, все они всё так же присутствуют как добавленные, то есть со значком +.
 
 Где моя ошибка? Или через роботс вообще невозможно закрыть подобное?
Уйдут из поиска позже. Можно в панели вебмастера Яндекс и гоши закрыть. Где то там было убрать из индекса. Да они и сами выкинут их из индекса думаю, только позже.
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #9 : 21.12.2017, 02:43:43 »
Тьфу, тьфу, вроде при сегодняшнем обновлении в панели Яндекс моя первая проблема начала решаться.
Страницы вида:
/component/rseventspro/day/12-24-2017/132
/component/rseventspro/day/12-28-2017/132
/component/rseventspro/day/12-29-2017/132
удалены из поиска с пометкой : (Индексирование страницы запрещено в файле robots.txt. Робот автоматически начнёт посещать страницу, когда она станет доступной для индексирования.)

А вот со второй частью проблемы мозгов моих не хватает. В поиске остается куча страниц вида:
/afisha/печать/6-detskoe-novogodnee-shou-konfetti-shou
Причем слово "печать", перерыв кажется все файлы компонента, нашла только в файлике по адресу -
/language/ru-RU/ru-RU.com_rseventspro.ini

В панели Яндекс при любой попытке удалить подобные странице  отвечает пунктом Отклонено.
С robots.txt тоже издевалась как только могла, пытаясь запретить этот /печать/ . Тогда в панели выдает ошибки в самом robots(
*

ProtectYourSite

  • Живу я здесь
  • 2366
  • 138 / 4
  • Безопасность вебсайтов
Re: В robots.txt закрыть компонент
« Ответ #10 : 21.12.2017, 08:08:00 »
А так

Код
Disallow: */%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C/*
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #11 : 21.12.2017, 22:23:24 »
А так

Код
Disallow: */%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C/*

Так прошло!
Теперь и при проверке robots.txt эти страницы закрыты, и при удалении их через панель выдает ответ: Удалено
А ведь сколько перепробовала вариантов с этими /печать/ или /%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C/

Большое спасибо Вам, ProtectYourSite   ::)
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #12 : 22.12.2017, 19:47:02 »
Упс, еще одна проблемка нарисовалась.

При проверке в Яндекс, страницы на которые прописана сторока
Disallow: */%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C/*  прекрасно блокируются.

А вот в Google эти страницы доступны для всех роботов(
В самом файле robots.txt  эта строчка внесена дважды. И в группу User-agent: * и в User-agent: Yandex

Google требует какое-то другое значение?
*

ProtectYourSite

  • Живу я здесь
  • 2366
  • 138 / 4
  • Безопасность вебсайтов
Re: В robots.txt закрыть компонент
« Ответ #13 : 23.12.2017, 11:17:51 »
А robots.txt обновленный или старый в Google? Может просто старая версия была.
*

Viktoriashelby

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: В robots.txt закрыть компонент
« Ответ #14 : 23.12.2017, 23:03:46 »
А robots.txt обновленный или старый в Google? Может просто старая версия была.
Нет, обновляла. И всевозможные варианты перепробовала с этим %D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C.
 А вот зато Disallow: */печать/ работает.  Но при этом Яндекс начинает ругаться на ошибку (Disallow: */печать/   Возможно, был использован недопустимый символ)

 Оставила пока так . Если опять начнут вылазить все эти глюки, наверно вообще придется удалить компонент афиши.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Каким плагином можно закрыть внешние ссылки?

Автор gorbi_U

Ответов: 4
Просмотров: 2682
Последний ответ 25.02.2023, 02:29:35
от olegon
Роботу Googlebot заблокирован доступ в файле robots.txt

Автор illimited

Ответов: 3
Просмотров: 3753
Последний ответ 29.05.2022, 14:57:55
от web1
Закрыть страницу со знаком? от индексации

Автор Андрей Нестеров

Ответов: 2
Просмотров: 1306
Последний ответ 28.02.2022, 22:38:44
от Андрей Нестеров
Правильный robots.txt? [вопросы/обсуждение]

Автор wishlight

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

Автор web1

Ответов: 2
Просмотров: 1105
Последний ответ 25.07.2021, 21:38:12
от web1