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

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
перенос формы
« : 16.10.2007, 15:34:23 »
создал на одном сайт форму в этом компоненте, как ее перенести на другой сайт?
*

SergK

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: перенос формы
« Ответ #1 : 29.01.2008, 10:06:22 »
Хотел посоветовать воспользоваться Создание/Установка пакетов из Настройки FF... (по идее через пакеты можно перемещать формы), но решил вначале попробовать эти возможности. При создании пакета сохраняется файл.xml нулевой длины :-\
Так что не судьба...
*

Арчик

  • Захожу иногда
  • 281
  • 32 / 0
Re: перенос формы
« Ответ #2 : 05.08.2008, 15:51:41 »
Ладно решил не создавать новую тему если есть старая  :)

Дык как перенести рускоязычную форму на другой сайт?
Я конешна понимаю что вы скажите мол - перенос xml пакетами - НО ...
Кракозябры после востановления пакета неизбежны...
Я ужо перелопатил все php скрипты и везде поменял кодировку (иp ISO...   в windows-1251) безрезультатно....
Кракозябры одолели (((((   
Мож как подругому форму перенести?;  или кодировку другую ?

« Последнее редактирование: 05.08.2008, 16:07:39 от Арчик »
Компьютер-это вещь для решения проблем, которых у вас не было до его появления...
*

clark5

  • Новичок
  • 4
  • 0 / 0
Re: перенос формы
« Ответ #3 : 04.11.2008, 21:21:47 »
И у меня такая же проблема, менял всю кодировку вполоть до декодирования фсех файлов в 1251. Без результатно! :(
Кто знает в чем проблема? Или есть варианты сохранения копии форм? Кстати могу скинуть Факили переделаную под 1251
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Re: перенос формы
« Ответ #4 : 21.11.2008, 20:26:41 »
Переносил между двумя сайтами -- оба работают на 1.0.12 Lavra Edition 2007.
*

Арчик

  • Захожу иногда
  • 281
  • 32 / 0
Re: перенос формы
« Ответ #5 : 23.11.2008, 15:42:11 »
Olg - Если Вы похвастаться то малость не по адресу, ежели помочь желаете  то поведайте нам: как переносили?
Компьютер-это вещь для решения проблем, которых у вас не было до его появления...
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Re: перенос формы
« Ответ #6 : 23.11.2008, 20:11:23 »
Совсем не хвастаться. Переносил около года назад. Сначала были кракозябры; потом заменил в xml файле, отвечающем за экспорт, объявление кодировки на windows-1251 — и всё заработало. Честно признаюсь — имя файла не помню.
*

Арчик

  • Захожу иногда
  • 281
  • 32 / 0
Re: перенос формы
« Ответ #7 : 24.11.2008, 17:35:28 »
 :o Странно когда я этим занимался я все xml перекодировал, как до так и после установки ком-та....
Компьютер-это вещь для решения проблем, которых у вас не было до его появления...
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Re: перенос формы
« Ответ #8 : 25.11.2008, 08:22:51 »
Сейчас попытался проделать процедуру переноса — действительно сохраняется файл xml нулевой длины с руганью самого компонента. Успешно экспорт делается только на локальной машине (Денвер).
*

valaridz

  • Новичок
  • 4
  • 0 / 0
Re: перенос формы
« Ответ #9 : 27.01.2009, 09:47:27 »
Проблема в самом xml парсере php. Как я понял нельзя напрямую использовать кодировку windows-1251, можно только реализовать это через utf-8:

http://www.internet-technologies.ru/articles/article_700.html
*

Арчик

  • Захожу иногда
  • 281
  • 32 / 0
Re: перенос формы
« Ответ #10 : 17.03.2009, 03:26:58 »
Ух блин перешел на 1.5 ветку а альтернативы данного компонента в упор не вижу! Мож кто в курсе , иль посоветуете что ?
Компьютер-это вещь для решения проблем, которых у вас не было до его появления...
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Re: перенос формы
« Ответ #11 : 17.03.2009, 10:52:59 »
Вот это http://extensions.joomla.org/extensions/contacts-&-feedback/forms/4709/details вроде на основе FF (но платная).
А вообще выбирайте http://extensions.joomla.org/extensions/contacts-&-feedback/forms.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На почту приходит письмо без данных формы

Автор decad0r

Ответов: 3
Просмотров: 6785
Последний ответ 28.04.2012, 11:16:46
от SK
Как сделать форму с калькулированием и отправкой файлов с формы ?

Автор DK-Scorp

Ответов: 4
Просмотров: 10117
Последний ответ 06.07.2010, 12:45:04
от incko
Как создавать формы в Facile Forms

Автор Krolikus

Ответов: 29
Просмотров: 12939
Последний ответ 31.03.2010, 22:45:20
от text
Импорт экспорт формы на русском

Автор zolcer

Ответов: 1
Просмотров: 2777
Последний ответ 15.03.2010, 14:14:04
от JoomlaTeacher
Данные из формы на е-мейл

Автор Privat

Ответов: 2
Просмотров: 3501
Последний ответ 03.02.2010, 19:47:39
от Olg