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

qaza

  • Захожу иногда
  • 83
  • 1 / 0
Добрый вечер дорогие форумчане!

У меня к Вам вопрос, по поводу rel="canonical". Ночи на пролет чтения интернета ни к чему не привели... В Joomla я особо не разбираюсь, лишь поверхностно...в общем я самоучка и  мало что понимаю в этой cms, пожалуйста выражайтесь обычным языком...не заучным:). У меня сайт http://rukp.ru он стоит на cms Joomla 3.0.3. Ниже я расскажу предысторию и саму проблему.

В Google сайт индексируется намного лучше чем в Яндексе, я начал разбираться в чем же проблема. Зарегистрировался в Яндекс вебмастере, и оказалось что Яндекс проиндексировал 614 страниц и исключил 446...с ссылкой что "Документ является неканоническим "... прочитав рекомендации от Яндекса, понял что дело в каком-то теге под названием rel="canonical".
Начал копаться в кодах страниц и оказалось что почти, даже наверно, на всех страницах сайта с товаром (например: http://www.rukp.ru/cards/100-plastik/igralnye-karty-100-plastik-poker-dzhambo-ind-55-l.html) стоит этот тэг...видимо поэтому поисковик и не стал их индексировать. Посмотрел все ссылки, что исключил Яндекс - оказалось что все ссылки - это прямые ссылки на товар.
Конечно по созданию сайта я сделал ошибку и не сделал нормальные ссылки на товар и категории. Т.Е. все ссылки у меня выглядели вот так: /component/jshopping/product/view/22/220.html?Itemid=0, буквально сегодня перелопатил весь сайт...теперь выглядят так: http://www.rukp.ru/poker/pokernyj-nabor-na-300-fishek-pro-poker.html  Но я уверен не в этом дело.
Копался я в Joomla копался, но все равно как создаю новый товар, снова всплывает этот тег.
Мой вопрос : как удалить тэг rel="canonical" с сайта на созданных страницах и на тех что я буду создавать в дальнейшем! И второй вопрос нужно ли его удалять!Но видимо проблема в нем, именно из-за него поисковик исключил большинство моих страниц из поиска :(

*

qaza

  • Захожу иногда
  • 83
  • 1 / 0
что-то я не разобрался что там написано :(
*

artel-st

  • Захожу иногда
  • 350
  • 37 / 1
На форуме выкладывали решение для борьбы с дублями страниц, причем 100%, что было решение и для JoomShopping

И второй вопрос нужно ли его удалять!
Google о канонических страницах
"Жираф - это лошадь, выполненная по всем требованиям заказчика" (с) кто-то из дизайнеров
*

qaza

  • Захожу иногда
  • 83
  • 1 / 0
wfedin, спасибо большое! Отключил - и тэг удалился со всех страниц.
Я так понял именно он блокировал все мои страницы, из-за него не определялись страницы в поиске....
*

volodkazaic

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Просто отключите плагин SEF и всё.
Подскажите, а в Общих настройках в админке отключать "Включить SEF (ЧПУ)"? Заранее спасибо
*

volodkazaic

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Нет, отключить плагин SEF в менеджере плагинов.
Спасибо. Посмотрим, как дальше поведет себя Яндекс
*

qaza

  • Захожу иногда
  • 83
  • 1 / 0
Еще раз добрый день!
меня все интересует вопрос, по поводу тега  rel="canonical" .
у меня два сайта. Проблема в том, что на одном при включенном SEF (отключить, благодаря Вам я разобрался как) появляется на всех страницах ТЭГ -  rel="canonical" , версия Joomla - Joomla! 3.0.3 Stable [ Ember ] 04-February-2013
А на втором сайте при включенном SEF - тэг rel="canonical" не показывает, версия Joomla - Joomla! 3.1.5 Stable [ Ember ] 01-August-2013

Какие есть варианты лечения? и если отключен SEF - это плохо для индексации?!
Да и еще на втором сайте (где все нормально работает) стоит sh404SEF. Может это как-то влияет?!

Облазил весь интернет, спрашиваю у Всех...никто мне не может дать внятного ответа :( а ответ нужен срочно....что делать? ХЭЛП!
*

irc-h

  • Захожу иногда
  • 158
  • 8 / 0
а хоть ссылку на сайты? а то не понятно немного... Попробуйте обновить первый упомянутый сайт до новой версии Joomla.
*

qaza

  • Захожу иногда
  • 83
  • 1 / 0
http:// - там где отключен SEF
http:// - все отлично работает
« Последнее редактирование: 11.02.2014, 12:12:10 от qaza »
*

irc-h

  • Захожу иногда
  • 158
  • 8 / 0
Вообще то оба не фурычат....

Error displaying the error page: Application Instantiation Error
*

qaza

  • Захожу иногда
  • 83
  • 1 / 0
да не все работает :) мб серв глючил?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать правильный редирект

Автор gadjet

Ответов: 25
Просмотров: 13299
Последний ответ 17.05.2022, 01:22:12
от kabban
Убрать из URL GET-параметр и сделать редирект на главную

Автор zeus07

Ответов: 8
Просмотров: 1022
Последний ответ 19.11.2021, 13:10:41
от zeus07
прошу удалить

Автор Игарь

Ответов: 0
Просмотров: 656
Последний ответ 07.11.2021, 12:26:36
от Игарь
прошу удалить

Автор Игарь

Ответов: 0
Просмотров: 566
Последний ответ 07.11.2021, 12:19:53
от Игарь
Как удалить странные дубли из поисковика?

Автор Elimelech

Ответов: 1
Просмотров: 920
Последний ответ 14.09.2021, 15:41:54
от ForQue