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

Patrick

  • Захожу иногда
  • 122
  • 6 / 12
Ошибка экспорта RSS
« : 09.09.2006, 04:59:12 »
Ошибка синтаксического анализа XML: неправильный
Адрес: http://www.fashionplace.ru/component/option,com_rss/feed,RSS2.0/no_html,1/
Строка 2, символ 3:<p<?xml version="1.0" encoding="windows-1251"?>
--^

Как это исправить?
*

Patrick

  • Захожу иногда
  • 122
  • 6 / 12
Re: Ошибка экспорта RSS
« Ответ #1 : 09.09.2006, 17:11:51 »
я знаю, что вы знаете) Откуда генерируется это все, чтобы понять, откуда вылез незакрытый тэг(((
*

Patrick

  • Захожу иногда
  • 122
  • 6 / 12
Re: Ошибка экспорта RSS
« Ответ #2 : 17.09.2006, 02:38:05 »
Вопрос очень сложный и все еще открыт)

Re: Ошибка экспорта RSS
« Ответ #3 : 23.07.2007, 01:48:11 »
Похожая проблема.

На локалке всё нормально работает, а загрузил в интернет - перестал работать RSS-экспорт одновременно и в Джумле и в Remository. Пишет вот такое:

В Firefox
Ошибка синтаксического анализа XML: элемент не найден
Адрес: http://www.сайт.biz/component/option,com_remository/Itemid,2/func,rss/no_html,1/
Строка 1, символ 1:
^

В IE
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей . Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.
--------------------------------------------------------------------------------
Для документа XML должен существовать документ более высокого уровня. Ошибка при обработке ресурса ''http...

В Opera
Анализ XML прерван: синтаксическая ошибка (Линия: 1, Символ: 0)

Помогите, пожалуйста, разобраться.
Заранее всем спасибо!

Re: Ошибка экспорта RSS
« Ответ #4 : 07.12.2007, 15:33:28 »
Похожая проблема:

Ошибка синтаксического анализа XML: обьявление xml не в начале внешней сущности
Адрес: http://www.сайт.org.ua/index.php?option=com_rss&feed=RSS2.0&no_html=1
Строка 1, символ 2: <?xml version="1.0" encoding="windows-1251"?>
-^




при загрузке страницы с лентой, перед <?xml version="1.0" encoding="windows-1251"?> появляется проблел, как его убрать не знаю.
есть еще один сайт на томже хостинге, тотже дистрибудив... и все раьботает ОК.
На локадбке работает тоже нормально.
Перезаписывал файлы, компонента (встроенного) и модуля, файл feedcreator.class.php тоже перезаписал.
результат тот же - ошибка. Проверял и другие компоненты - результат тотже
Думал может шаблон, так нет...
Папка кеша открыта на запись.

Подскажите если кто-то сталкивался с подоброй проблемой, как ее можно решить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль Joomla для экспорта RSS яндекса?

Автор AM2000

Ответов: 6
Просмотров: 8849
Последний ответ 16.02.2008, 09:41:32
от chemerzaev
Импорт RSS, 500 Internal Server Error и ошибка в xml_domit_parser.php

Автор denton100

Ответов: 5
Просмотров: 4867
Последний ответ 27.06.2007, 12:40:31
от smart