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

Ganq

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
День добрый. Возникло пару вопросов по K2
Создал категорию в K2
Создал 5 материалов в K2
Создал модуль Contetn K2 вывода всех материалов из категории  на одну страницу из меню.
Далее создал Contetn K2 настроил вывод последних 2 статей на главной странице.
1) Вопрос как сделать чтобы материал который отображается на главной странице отображал тока 200 первых символов. Залезал в K2 ставил "Ограничение слов в вводном тексте" 200. Это не помогло
2) Когда перехожу на саму статью у меня тупа не открывается она просто пустая страница. Как сделать чтобы все материалы в К2 были опубликованы и их можно было читать по отдельности.
3) Не отображаются Рейтинг и кнопки соц сетей. Залезал в К2 в категории и материалы(в материал везде поставил "Отображать из категории") ставил отображение рейтинга и соц сети в - Показывать. Но в итоге он их не показывает.

У меня Joomla 3.4, K2 v2.6.9. Сайт стоит на denwer.

Мб я что то пропустил или мб что то не так сделал или мб не через конетет К2 делаю?? Помогите плз  !
*

Ganq

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: K2, Joomla 3 и вывод материалов из К2
« Ответ #1 : 17.03.2015, 18:11:43 »
Со втором пунктом разобрался.
Остался тока 1 и 3 пункт
*

Ganq

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: K2, Joomla 3 и вывод материалов из К2
« Ответ #2 : 27.03.2015, 16:13:28 »
1 и 3 пункт решил. Скачал чистую Joomla 3.4 c офф сайта.org залил на хостинг. Установил сразу K2 и эти пункты решились сразу.
2) Оказалось что я сверстал не правельно шаблон. Нужно было поставить модули <jdoc:include type="modules" name="pre_component" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="post_component" />
После чего все заработало.
Тема close.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос материалов из Joomla3 + K2 в Joomla4

Автор Magnum79

Ответов: 0
Просмотров: 1474
Последний ответ 24.05.2024, 21:49:14
от Magnum79
Как добавить свой класс для страниц вывода материалов по тегу k2?

Автор Slava77

Ответов: 0
Просмотров: 4084
Последний ответ 16.02.2023, 23:29:34
от Slava77
Наполняя категорию K2 копированием материалов, пропадает навигация в статьях

Автор Slava77

Ответов: 4
Просмотров: 3027
Последний ответ 24.12.2021, 22:30:56
от Slava77
Миграция Joomla k2 на вордпресс

Автор wishlight

Ответов: 9
Просмотров: 2731
Последний ответ 17.12.2021, 09:25:43
от stellagreen
K2 Store - вывод Product Options в карточке товара

Автор John_Flores

Ответов: 1
Просмотров: 1062
Последний ответ 26.11.2021, 12:04:32
от John_Flores