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

atolic

  • Захожу иногда
  • 70
  • 0 / 0
Создал меню типа"Показывает список материалов из одной или более категорий. " Естественно там есть несколько статей в данной категории.

Жму на ссылку меню..ничего не происходит. Т.Е. статьи из данной категории не отображаются. Ни список статей , ни статьи в виде блога.

После обновления стр.видно только название категории в виде ссылки и все. Сколько ни жми на ссылку-не открывается данная категория.

Версия K2V2.4.1 русифицированная.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Покажите скриншот настроек типа меню, скриншот настроек категории, которую отображаете.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
выкладываю скрины
1.отображение категории
2.отображение материала в категории
3.пункт меню
4.вид на сайте  когда жмеш ссылку-то же окошко остается а материалы в категории не открываются

( сам материал в категории  можно посмотреть по прямой ссылке на материал)

« Последнее редактирование: 11.08.2011, 20:54:49 от atolic »
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
1) А материалы-то есть в категории?
2) Сторонний SEF не стоит?

Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
1) А материалы-то есть в категории?
2) Сторонний SEF не стоит?   НЕТ.

Вот и сам материал на сайте как выглядит
Пока не удасться посмотреть, т.к. уже снес версию k2


Я уже думаю старую версию K2 v2.2 поставить. Там вроде все работает.
Хотя это какой-то глюк. Кто-нибудь может кинуть ссылку, где работает сайт на K2 V2.4.1? , чтобы точно убедится, что версия рабочая.
« Последнее редактирование: 13.08.2011, 06:36:34 от atolic »
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Версия точно рабочая))
В ветке данного форума есть тема: Сайты на k2.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Ева

  • Новичок
  • 2
  • 0 / 0
У меня возникла похожая проблема. Не могу понять в чем дело=(
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
Значит проблема имеет место быть! и глюк не только у меня.
Кстати могу сказать, что это никак не связано с русификацией.
На англ.версии та же проблема.
Ну а Joomla стоит v.1.5.22

Вопрос остается открытым?
*

Ева

  • Новичок
  • 2
  • 0 / 0
При добавлении нового материала, он не отображается в новостной ленте. Настройки все проверила. Все правильно. Не могу понять в чем причина. Пробовала стандартный модуль вывода к2 и AiDaNews for K2.

Подскажите, пожалуйста, в чем может быть загвоздка.
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
У ТС какой то бред, ищите проблему, она связана явно не с комопонентом, а с его настройками или вашим хочтингом, у меня сайт висит уже более полугода - чисто на основе K2 и никогда не возникало проблем с выводом категорий.
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
побороть глюк в v 2.4.1 пока не получается. Материалы находящиеся в категории не отображаются.
Проблема так же не в хостере, т.к. на данном хосте работает k2 v.2.2 правда в связке c более ранней версие Joomla 1.5.14
В качестве эксперимента уже снес версию 2.4.1 и сейчас пробую установить версию 2.2 в связке с Joomla 1.5.22
Сначала без русификации, а затем с русификацией.
Результаты-отпишу в данной теме. Самому интересно найти проблему.
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
При добавлении нового материала, он не отображается в новостной ленте.
может это поможет (откопал на буржуйском сайте)
Код
An issue has been found with coding relating to RSSLook at lines 414 and 419 of /com_k2/models/item.php $item->description.= '<div class="K2FeedIntroText">'.$item->introtext.'<div>';This should be changed to: $item->description.= '<div class="K2FeedIntroText">'.$item->introtext.'</div>'; 
*

atolic

  • Захожу иногда
  • 70
  • 0 / 0
ПОБЕДИЛ!

Материалы из категории не отображаются, если меню имеет тип "Показывает список материалов из одной или более категорий. "
в том случае, ЕСЛИ В КАТЕГОРИИ присутствует МЕНЕЕ 3-Х СТАТЕЙ (почему не знаю)



« Последнее редактирование: 13.08.2011, 14:28:40 от atolic »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться