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

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
с разработчиком бывает сложно связаться и дождаться нужного от него - по этому и спрашиваю, - прошу ответить, если знаете, как разрешить сложившуюся ситуацию. :)
обращаться в ком-ий раздел как бы я не буду - раздавать пароли незнакомым людям и ждать от них результата, по-моему, последнее дело. ;)

всегда ведь можно поделиться знаниями, а не уподобляться Протогору.
« Последнее редактирование: 22.07.2012, 17:12:31 от Gaffer »
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
чужой сайт - потемки. причин может быть множество.
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
чужой сайт - потемки. причин может быть множество.
как я понял причина где-то в виртумарте - все, что касается Joomla (главная страница, материалы) прекрасно индексируется - признаться, я поздно заметил (так понял с начала июня индекс не шёл) эту беду.  !
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
материалы тоже 404 отдают, только главная 200
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
в мета-тегах материалов noindex прописан

Так, что: Есть у вас идеи и предложения, в чём проблем и как исправить сложившуюся ситуацию*?
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
ELLE, приветствую.

Вот интересно: Яндекс.Вебмастер отдает 200 ответ на страницы, а эти сервисы проверки ответа сервера пишут 404 и Google рисует 'X Ошибка' - почему так разнятся показания?
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Всем! Всем! Всем!
Уж часто вопрос задают и ответ не получают.
Virtuemart отдает 303 ответ сервера при включенной проверке кукисов, если в настройках отключить проверку кукисов, то ответ сервера будет 200
Приветствую.
Это я понял. Но как же тогда объяснить, что два месяца сайт индексировался с вкл проверкой куки или настройка в роботсе Disallow: /*vmcchk повлияла на смену 200 ответа на 303?, - ведь индексировался сайт, пусть и с кучей дублей.
В сети пишут несколько способов отключения проверки куки - одни пишут, что достаточно выключить в настройках VirtueMart, а иные, что нужно закомментировать строки - как правильно, или важен результат..?
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Продолжаем разговора. :-)

В общем все страницы сайта с SEF ссылками отдают 404 ответ - та же ссылка без SEF, стандартная джумловская, яндексом определяется, как 200 ОК, - в чём проблема?

Есть ли ответ у местных специалистов? ;-)
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
SEF стандартный или SН404?

совет все же есть не тратить время и разработчика попросить или нанять стороннего дабы кажется что у вас с вашим не все гладко сложилось
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
SEF, конечно, стандартный.
Нужен ответ в чем может быть проблема?, - советы про разработчика я уже слышал. :-)
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
В общем ситуация разрешилась - несколько дней переписки с известным поисковиком привели к нужному 200 ответу сервера.
Всем спасибо за советы. :-)
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
интересно) каким образом они могли повлиять на ваш сайт)
*

Gaffer

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
пади знай, - Google и cy-pr.com показывали 200 ответ, а Яндекс и мэйнспай тут же выдавали 404 - админ сервера рассказал, что они ничего не делали как бы и проблема, как он и говорил была в яндексе?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с поисковиком

Автор Vismuth

Ответов: 6
Просмотров: 867
Последний ответ 09.11.2020, 13:51:26
от Vismuth
Языки /en/ /ru/ проблема с входом в админку и редиректит на site.r/ru/robots.txt

Автор HolySong

Ответов: 0
Просмотров: 1029
Последний ответ 10.07.2020, 13:12:46
от HolySong
Проблема с индексацией в Google

Автор KingSnake

Ответов: 1
Просмотров: 1182
Последний ответ 27.04.2019, 14:03:48
от smallplushbear
Есть ли в Joomla 3.9 проблема с дублями страниц?

Автор shop-user

Ответов: 13
Просмотров: 2454
Последний ответ 08.01.2019, 14:30:39
от zikkuratvk
Поделитесь компонентом JC Yandex Turbo

Автор khan-alex

Ответов: 13
Просмотров: 3286
Последний ответ 28.05.2018, 10:15:10
от ProtectYourSite