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

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
[РЕШЕНО]smooth scroll plugin
« : 19.06.2018, 09:48:15 »
Установил сей плагин для лендинга
работает как надо со скоростью прокрутки и типом разобрался
знающие люди подскажите где в php прописать что бы прокручивало не на самый верх а делало отступ сверху пикселей 100
ибо стикихедер перекрывает или посоветуйте какой другой плагинчик
ниже пых файл плагина
Спойлер
[свернуть]
« Последнее редактирование: 19.06.2018, 10:44:58 от lexxbry »
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Re: smooth scroll plugin
« Ответ #1 : 19.06.2018, 09:59:11 »
ниже пых файл плагина
А вас не смущает, что это чисто JS?

А ответ на ваш вопрос - читайте в документации к плагину, на странице разработчика https://github.com/kswedberg/jquery-smooth-scroll
Даю подсказку - вам нужен раздел "Options"
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: smooth scroll plugin
« Ответ #2 : 19.06.2018, 10:44:36 »
А вас не смущает, что это чисто JS?

А ответ на ваш вопрос - читайте в документации к плагину, на странице разработчика https://github.com/kswedberg/jquery-smooth-scroll
Даю подсказку - вам нужен раздел "Options"
спасибо и на этом
решил нежели копаться в чужих кодах малость под себя сделать и не париться
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
RE: smooth scroll plugin
« Ответ #3 : 19.06.2018, 10:51:09 »
так там копаться не надо :) offset же я так понимаю задать просто, и все
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
RE: smooth scroll plugin
« Ответ #4 : 19.06.2018, 11:07:52 »
так там копаться не надо :) offset же я так понимаю задать просто, и все
именно так(просто посмотрел какие функции за что отвечают)
просто решил нафига целый плагин
маленький js накинул и подключил
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
RE: smooth scroll plugin
« Ответ #5 : 19.06.2018, 11:39:48 »
а, ну можно и так конечно :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Фатальная ошибка после включения плагина MP3 Browser Plugin

Автор tinka

Ответов: 7
Просмотров: 2231
Последний ответ 04.03.2020, 20:00:10
от glushilka
Uikit ручная инициализация DatePicker [РЕШЕНО]

Автор dm-krv

Ответов: 5
Просмотров: 2037
Последний ответ 25.09.2019, 12:39:35
от dm-krv
Вопрос по плагинам бесконечной прогрузки (ajax scroll)

Автор bantell

Ответов: 8
Просмотров: 1630
Последний ответ 10.06.2018, 19:17:22
от dmitry_stas
Вопрос по плагину AJAX scroll

Автор kik84

Ответов: 5
Просмотров: 3298
Последний ответ 17.09.2017, 11:43:10
от ELLE
Extra News Plugin не корректно работает в Joomla 3.7.5

Автор kosopuzik

Ответов: 0
Просмотров: 1143
Последний ответ 15.09.2017, 23:13:13
от kosopuzik