Новости 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 Ответов
  • 4711 Просмотров
*

SET999

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
При установки компонента,через 30 секунд выскакивает такое предупреждение,как я понимаю не хватает времени для загрузки.
Подскажите где что надо прописать,не загружается на денвер


Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\doctor\administrator\components\com_installer\installer.class.php on line 359
*

chtec

  • Захожу иногда
  • 230
  • 100 / 1
Re: Не устанавливается компонент
« Ответ #1 : 08.11.2008, 16:13:27 »
В файле php.ini поправить хначение параметра
max_execution_time =
поставить побольше секунд (не сильно побольше, подбери, сколько нужно, и хватит). Если доступа к php.ini нет - обращаться к хостеру.

ЗЫ: 8 минут ждал ответ. А в поиске по форуму с запросом "Fatal error: Maximum execution time of 30 seconds" нашел бы за 20 секунд ;)
Осень тоже хорошо.
*

SET999

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не устанавливается компонент
« Ответ #2 : 09.11.2008, 16:32:37 »
В файле php.ini поправить хначение параметра
max_execution_time =
поставить побольше секунд (не сильно побольше, подбери, сколько нужно, и хватит). Если доступа к php.ini нет - обращаться к хостеру.
Изменил в файле php.ini значение 30 на 40.Теперь денвер вообще не запускается,поменял значение обратно,запускаться не хочет

*

SET999

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не устанавливается компонент
« Ответ #3 : 09.11.2008, 16:33:57 »
Изменил в файле php.ini значение 30 на 40.Теперь денвер вообще не запускается,поменял значение обратно,запускаться не хочет
*

chtec

  • Захожу иногда
  • 230
  • 100 / 1
Re: Не устанавливается компонент
« Ответ #4 : 09.11.2008, 18:44:56 »
Если все корректно сделал - не может такого быть. Выпиши сюда кусок кода - строчку, которую менял + 5 строчек снизу-сверху.
Осень тоже хорошо.
*

SET999

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не устанавливается компонент
« Ответ #5 : 12.11.2008, 22:59:29 »
Misc
;
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
expose_php = On


;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60   ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; error_reporting is a bit-field.  Or each number up to get desired error
; reporting level
; E_ALL             - All errors and warnings (doesn't include E_STRICT)
; E_ERROR           - fatal run-time errors
; E_RECOVERABLE_ERROR  - almost fatal run-time errors
; E_WARNING         - run-time warnings (non-fatal errors)
; E_PARSE           - compile-time parse errors
; E_NOTICE          - run-time notices (these are warnings which often result

Re: Не устанавливается компонент
« Ответ #6 : 28.01.2009, 19:26:28 »
При установке выдало  ошибку max_execution_time=30, поменял время в файле php.ini..... но после повторной попытки установить расширение выдает ошибку


Ошибка* Компонент Установить: Другой компонент уже использует эту директорию: "X:\home\localhost\www\newsportal\components\com_comment"
        * Компонент Установить: Другой компонент уже использует эту директорию: "X:\home\localhost\www\newsportal\administrator\components\com_comment"

Поможите!!!




[вложение удалено Администратором]
*

MuraDweb

  • Захожу иногда
  • 267
  • 124 / 1
Re: Не устанавливается компонент
« Ответ #7 : 28.01.2009, 19:46:37 »
X:\home\localhost\www\newsportal\components\com_comment
X:\home\localhost\www\newsportal\administrator\components\com_comment
Удалите вручную папки com_comment по этим путям и переустановите заново.
Яндекс.Деньги: 41001423568435
Webmoney: R 377548789269 | Z 421465848009 | E 126339514076 | U 413960261029
-
А, Вы читали ? Правила форума | FAQ J! 1.5 | FAQ J! 1.0
*

Kaless1n

  • Новичок
  • 5
  • 0 / 0
Re: Не устанавливается компонент
« Ответ #8 : 20.03.2009, 01:48:54 »
Та ж фигня произошла (только с Joomla 1.5.9).
Спасибо, помогло!

Re: Не устанавливается компонент
« Ответ #9 : 19.12.2009, 16:16:30 »
Удалите вручную папки com_comment по этим путям и переустановите заново.
Та же проблема. Сто раз удалял эти папки, чистил папку tmp\ - ниче не помогает!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Смена навигации на сайте! Компонент Best Page Navigation

Автор ageent

Ответов: 33
Просмотров: 22315
Последний ответ 05.07.2012, 15:33:12
от den316
Компонент Тестирование (com_testajax for Joomla)

Автор dapmoed

Ответов: 58
Просмотров: 43649
Последний ответ 23.02.2012, 16:44:03
от devul
Другой компонент уже использует каталог...

Автор lamo84

Ответов: 7
Просмотров: 7456
Последний ответ 14.03.2011, 20:18:23
от SmokerMan
Archivator 3.0 - компонент для создания архива материалов (бета-версия)

Автор Dutch

Ответов: 9
Просмотров: 14408
Последний ответ 04.09.2010, 09:21:21
от slagol
Компонент граббинга новостных лент для Joomla

Автор malus

Ответов: 94
Просмотров: 49112
Последний ответ 30.05.2010, 19:22:02
от malus