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

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1
Добрый день! Подскажите пожалуйста, в чем может быть загвоздка?

Joomla - крайняя! При попытке поставить расширение - процесс затягивается навечно. С чем может быть связано?

Спасибо
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
откройте в браузере консоль javascript и напишите какие ошибки возникают в процессе установки
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1


Вот текст:

Uncaught TypeError: Cannot read property 'redirect' of undefined
    at Object.<anonymous> (index.php?option=com_installer:249)
    at i (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at y (jquery.min.js:4)
    at XMLHttpRequest.c (jquery.min.js:4)
firebug-lite.js:11883 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
fetchResource @ firebug-lite.js:11883
index.php?option=com_installer:1 Error in event handler for (unknown): TypeError: Cannot read property 'recipients_positions' of undefined
    at Object.message (chrome-extension://jlipcaflaocihnmlhnhcfombgmmfglho/content/messenger.js:158:72)
    at Object.execute (chrome-extension://jlipcaflaocihnmlhnhcfombgmmfglho/content/messenger.js:6:25)
    at chrome-extension://jlipcaflaocihnmlhnhcfombgmmfglho/chrome/content.js:69:28
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Joomla - крайняя!
Ошибки выдает Joomla ?
При попытке поставить расширение - процесс затягивается навечно. С чем может быть связано?
С правами на папки. Установите рекурсивно 755 на папки на весь каталог сайта .А в другом браузере?
*

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1
С правами на папки. Установите рекурсивно 755 на папки на весь каталог сайта .А в другом браузере?

Везде 755. В другом браузере Chrome - тоже самое. В Мазиле - даже не появилось окно установки, хотя остальные функции работают
*

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1
Кажется разобрался (не уверен). Обнаружил что: Максимальный размер загрузки: 10M, а нужный архив 11 мб. Возникает вопрос: как увеличить максимальный размер?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это настройки хостинга, это надо спрашивать у хостера. возможно это нельзя изменить для вашего тарифного плана, а может это настрйока в панели, и т.п. зависит от хостинга, в общем.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1
это настройки хостинга, это надо спрашивать у хостера. возможно это нельзя изменить для вашего тарифного плана, а может это настрйока в панели, и т.п. зависит от хостинга, в общем.
Понял, спасибо
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Возникает вопрос: как увеличить максимальный размер?
.htaccess
Код
php_value post_max_size 12M
php_value upload_max_filesize 12M
Был трабл в связи с обновлением до 3.8, пришлось увеличивать.
*

Alex_iPod

  • Захожу иногда
  • 187
  • 0 / 1
.htaccess
Код
php_value post_max_size 12M
php_value upload_max_filesize 12M
Был трабл в связи с обновлением до 3.8, пришлось увеличивать.

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

Расширение BA Team - Не удалось найти представление [name, type, prefix]: images

Автор DeniTornado

Ответов: 0
Просмотров: 1255
Последний ответ 19.09.2024, 14:50:24
от DeniTornado
Нужно ли такое расширение как оплата при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 1332
Последний ответ 30.08.2024, 08:06:23
от kkmspb
Расширение od jshopping categories на Joomla 5

Автор ironDiaper

Ответов: 0
Просмотров: 2052
Последний ответ 13.01.2024, 17:54:34
от ironDiaper
sp page builder + расширение ИМ

Автор Darov

Ответов: 6
Просмотров: 1425
Последний ответ 12.04.2020, 20:31:07
от Darov
Расширение csvi экспорт параметров

Автор One

Ответов: 1
Просмотров: 931
Последний ответ 04.08.2019, 22:29:32
от AlekVolsk