Новости 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 Ответов
  • 3178 Просмотров
*

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Друзья, помогите разобраться! Встроенный в К2 РСС-канал (экспорт, на всякий случай уточню) то ли не работеат ВООБЩЕ, то ли как-то неправильно, я проверял код, там нет ничего общего с экспорными каналами
теперя ИЩУ ТО ЛИ ПЛАГИН, ТО ЛИ КОМПОНЕНТ ЭКСПОРТА НОВОСТЕЙ ДЛЯ К2!
существует ли такая вещь в сети? кто знает, подскажите где искать!
спасибо!
« Последнее редактирование: 02.11.2012, 22:15:52 от ELLE »
*

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
ау! есть кто живой? кто-нить знает?
*

staticlight

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

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
в общем, на разные ресурсы... сколько видел, требуется стандартный набор тэгов...
FeedBurner для этого подходит?
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Вы сначала подробно опишите, какие требования к экспорту у ресурсов и как это вообще планируется организовывать.

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

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
вот пример:
(из требований RedTram)
RSS-лента новостей должна соответствовать следующим требованиям:
...
Обязательными тегами являются: title, link, category и description.


а вот что показывает РСС от К2 - на примере рсс-страницы: view-source:http://travelsplanet.net/news.feed
1. не все теги присутствуют
2. код страницы явно не соответствует типичному коду РСС-ленты...
*

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
может, что-то неправильно понимаю? просветите плз! потому как инструкция по этому вопросу найти не смог :(
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
У вас косяк с отображение rss-ленты, связанный либо со сторонним SEF-компонентом, либо с шаблоном.
Потому что ссылка должна иметь вид примерно такой: категория/id_категории-название категории?format=feed

Пример правильно сгенерированной (т.е. как должно быть) rss-ленты на вашем сайте: http://travelsplanet.net/publikatsii/novosti?format=feed
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

staticlight

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

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
упс... вот в чем дело?....
где бы Вы посоветовали искать?
попробовать СЕФ отключать?
и почему одна варианты ленты работают, другие - нет? :(
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Отключите сторонние  SEF-компоненты (Artio или JoomSEF или 404SEF, если у вас такое стоит).
Цитировать
и почему одна варианты ленты работают, другие - нет?

У вас на сайте все пути к RSS неправильные.

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

stah

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
:( спасибо
*

Serena Dark

  • Захожу иногда
  • 99
  • 2 / 0
Присоединяюсь к вопросу. Надо сгенерировать 2 ленты, с полным текстом для обычного фида и только с названием (в идеале конечно с дополнительными полями ^___^) для вывода на форум SMF.
А так у меня чтото обчный фид не настраивается, хотя передается...
Не подскажете компонент? Бесплатный, желательно, проект некоммерческий
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Автоматическая AcyMailing-рассылка K2-новостей и "подписка для ленивых"

Автор Dorfman

Ответов: 11
Просмотров: 11239
Последний ответ 12.02.2016, 23:43:04
от Gobzitron
Sherpa для K2 - компонент создание собственных дополнительных полей K2

Автор stas_rsv

Ответов: 43
Просмотров: 31450
Последний ответ 25.02.2015, 11:53:57
от Artus84
Вывод новостей К2

Автор svetlik1

Ответов: 1
Просмотров: 2031
Последний ответ 17.11.2013, 12:33:47
от shur
Поиск модуля вывода новостей с доп. полями и пагинацией

Автор wedford

Ответов: 0
Просмотров: 1138
Последний ответ 01.10.2013, 10:00:40
от wedford
Модуль по выводу новостей из разных категорий, подскажите

Автор LRN

Ответов: 1
Просмотров: 1588
Последний ответ 05.08.2013, 14:22:25
от paternoster