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

saiskyi

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
 очень нужен Урок по созданию своего (joomla+quickstart) шаблона. Как

делают студии.НЕ БЭКАП САЙТА+quickstart+ПЕРЕНОС и всё такое.Почему

нигде нет, я в шоке...
 Делал так:
   1 вариант: в Total Commander полная Копия сайта в папку(zzz)
в phpMyAdmin экспорт базы в файл sql.(в настройках сохранения sql
менял галки на :DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVEN
и IF NOT EXIS-да нет
Максимальная совместимость с системой базы данных, или устаревшей
версией MySQL:нет-да
Копия родной папки joomla/installation. Замена файла
installation\sql\mysql\sample_data на свой. Удаление файла
configuration из папки(zzz)если этот файл оставить встаёт криво-косо
шаблон, вернее сайт со своими админданными и т.д короче не подходит.
в папке installation\sql\mysql удалял всё и оставлял всё с заменой

файла sample_data
   2: Всё почти так же только через (com_akeeba) с разными

настройками.
 Короче на выходе получаю нормальную инсталяцию, установка демо
данных-да.В результате шаблоны только Joomla или белая страница.
чё дальше делать не знаю. Сеть перерыл, нашел только это:
(там старая версия
дэнвера. У меня 5.5.25  PHP: 5.3.13) делал как на видео тоже не

получилось.
может есть где уроки, лучше видео, буду признателен. Могу заплатить.

здесь(шаблон(чик) без грязи 100%+бэкап(akeeba)+quickstart.php
http://yadi.sk/d/6OowDKHkFHEKf
Пароль, логин-00000
Что делаю не так не знаю перепробовал всё...короче чайник есть

чайник...Все такими были.
Если можно отпишитесь на photosimf@yandex.ru
*

saiskyi

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как сделать свой шаблон quickstart?
« Ответ #2 : 18.02.2014, 21:14:49 »
СПАСИБОЧКИ огромное, пока вскольз взглянул, уже не терпится пробовать....
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Как сделать свой шаблон quickstart?
« Ответ #3 : 19.02.2020, 19:29:01 »
Как заказывали: Создание Quickstart пакета для Joomla 2.5 и Joomla 3 :)
Спасибо за статью. Всё получилось.
Вы в статье упомянули, что можно создать свои данные место использования «Стандартные English (GB) демо-данные», но это на 2-3 действия больше. А можете всё таки рассказать, как это сделать? Чтобы добавить еще одну строку с select-ом, в которой будут данные квикстарта с понятным названием, что именно это будет квикстарт.
« Последнее редактирование: 19.02.2020, 19:35:16 от Bozhkov2 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как настроить шаблон?

Автор tromba

Ответов: 2
Просмотров: 4159
Последний ответ 15.08.2018, 15:29:56
от tromba
Суффикс CSS-класса модуля - объясните пожалуйста, как правильно сделать CCS для модуля

Автор rootroot

Ответов: 19
Просмотров: 39773
Последний ответ 21.03.2018, 23:49:27
от beliyadm
Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 2127
Последний ответ 05.06.2017, 21:15:42
от effrit
Как вставить рекламу в мобильный шаблон ja_edenite?

Автор gorbi_U

Ответов: 3
Просмотров: 1900
Последний ответ 02.06.2017, 08:43:26
от gorbi_U
Шаблон JA_Edenite joomla2.5

Автор askvrk2

Ответов: 6
Просмотров: 3048
Последний ответ 29.05.2017, 09:29:08
от gorbi_U