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

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Посмотрел в мутулзовских доках - методы get и set угодили в устаревшие.
*

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Все работает, вроде как
Opera 11.50. Открывается со второго раза только.
Создание сайтов, шаблонов, помощь в решении проблем.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
staticlight, прекращай работать! ))
у тебя там вообще старая версия плагина, в ней ID у блока со спойлером нет ))
обнови плагин, добавь ещё пару спойлеров, потом хвастай )))
*

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
Opera 11.50. Открывается со второго раза только.

Подтверждаю, возникает старая проблема
на локалке с мутулзом глюки всё же бывают. на серваке тоже будут, надо полагать.
при первом нажатии неправильно считается высота спойлера и виден тольок самый край первой картинки.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
staticlight, прекращай работать! ))
у тебя там вообще старая версяи плагина, в ней ID у блока со спойлером нет ))
обнови плагин, добавь ещё пару спойлеров, потом хвастай )))

Гы, я кэш забыл почистить)))

Не бейте тапками
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

skai

  • Завсегдатай
  • 1198
  • 153 / 1
  • skaiseo
Не бейте тапками
  - раз уж начал тестить, добавь пожалуйста ещё пару спойлеров с картинками и включи в настройках «один открытый» и остальные закрываются при открытии следующего.
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Arkadiy, синтаксис можно пофиксить будет.
просто апгрейдовый мутулз на 1.5.20 - это Mootools 1.2.4
сейчас для него пишем. если новые функции поддерживаются этой версией мутулза, тогда, конечно, надо заменить будет
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
duration: animatespeed
вот в чем проблема, у меня глючит из-за того, что animatespeed с кавычками, убрал кавычки - глюки прекратились. во как.
*

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
 - раз уж начал тестить, добавь пожалуйста ещё пару спойлеров с картинками и включи в настройках «один открытый»

Такого функционаля для спойлера на мутулзах нету =) есть только закрыть предыдущий.
вот, реализовал сворачивание предыдущего
думается, что, по добавлении обработки "развёрнуты при старте", функционала хватит за глаза 99 процентам страждущих ).

Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну, в принципе, метод работы с мутулзовым слайдером есть. хоть и перректально, но можно сделать аналог квери меньшим кодом/кровью.
или сократить число настроек у квери )))).
Arkadiy соберёт в одну версию все наработки и можно будет допиливать, а то сейчас у нас две ветки получаются. це неправильно )
*

skai

  • Завсегдатай
  • 1198
  • 153 / 1
  • skaiseo
staticlight - спасибо, посмотрел. Вроде во всех браузерах корректно работает.

effrit & Arkadiy - от себя лично, а так же от лица трудового народа выражаю вам огромную благодарность! )
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
skai, спасибо )
я думаю, можно будет назвать плагин "Lazy velo spoiler", перевести на инглишь и показать на JED.
потому как и у Петра, и у Аркадия и у меня есть лисапед!
( а без велика кто бы полез мутулз ковырять? да ни в жизть! )) )
*

staticlight

  • Завсегдатай
  • 1086
  • 65 / 0
  • Staticlight
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
ну, в принципе, метод работы с мутулзовым слайдером есть. хоть и перректально, но можно сделать аналог квери меньшим кодом/кровью.
или сократить число настроек у квери )))).
Arkadiy соберёт в одну версию все наработки и можно будет допиливать, а то сейчас у нас две ветки получаются. це неправильно )
Да, неправильно, я уже третий раз пытаюсь скомпилировать все ;)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
skai, спасибо )
я думаю, можно будет назвать плагин "Lazy velo spoiler", перевести на инглишь и показать на JED.
потому как и у Петра, и у Аркадия и у меня есть лисапед!
( а без велика кто бы полез мутулз ковырять? да ни в жизть! )) )
;D ;D ;D
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
а может у тебя просто там не число стояло, а "fast" какой-нить?
Нет, число
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
тоды не понятно. у staticlight'a тоже нормально завёлся.
ну соберёшь вариант, котрый у тебя заработает, тогда ещё погоняем.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
У меня еще глюк - вместо закрытого слайда остается пустой див с высотой какая у слайда была и после этого этот слайд не показывается (скрыт) насовсем. В коде получается следующая шняга - слайд при нормальном закрытии собственным заголовком имеет один оберточный див вокруг тела, а вот когда закрывается при открытии другого дива, то там появляется еще одна обертка, с которой связаны все глюки. Ничего не понимаю, почему у вас работает?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да уж. у тебя какая-то особенная капризная програмистская версия сервера ))).
на самом деле тут интересный момент. смотри в код - для закрытия предыдущего слайдера создаётся новый экземляр Fx.Slide (var fx_sp_slide_2)
может из-за это глюк?
я вот думаю, если попробовать на первом прогоне не локальную переменную в цикле создавать, а массив заполнять  fx_sp_slide[n] - тогда, вроде как, можно будет напрямую запускать toggle для любого слайдера, не создавая промежуточный fx_sp_slide_2.

но всё равно не понятно, почему робит у нас тогда
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Разобрался, думал можно обновиться просто копированием файлов, а тут еще плагин врубать, которого после копирования в системе не появляется. Век живи, век учись. Старые мутулзы были.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Да чет я мимо ушей пропустил, потом когда все плохо стало совсем, начал думать.
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Да чет я мимо ушей пропустил, потом когда все плохо стало совсем, начал думать.

Настоящий русский человек)
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Arkadiy, заехал бы, вместе до ума довели бы работу.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Доделал мутулзы. все нужные функции работают:
- Скорость анимации
- Загружать картинки при открытии спойлера
- Свернуть предыдущие
- Показать по нажатию и т.п.
- Индекс открытого по умолчанию

В "Индекс открытого по умолчанию" писать через запятую номер слайда сверху вниз начиная с единицы.

[вложение удалено Администратором]
« Последнее редактирование: 01.08.2011, 20:07:11 от Arkadiy »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Arkadiy, заехал бы, вместе до ума довели бы работу.

Да с удовольствием-бы, но в отпуск уезжаю, сейчас дел очень много, да и плагин вроде поддался. На каждого мудреца достаточно простоты. :)
Моя простота стоила мне часов пяти бессмысленных тыканий.

Если хочешь поучаствовать можешь стили подредактировать в css3 желательно, ччтобы без графики, но красиво.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Да с удовольствием-бы, но в отпуск уезжаю, сейчас дел очень много, да и плагин вроде поддался. На каждого мудреца достаточно простоты. :)
Моя простота стоила мне часов пяти бессмысленных тыканий.

Если хочешь поучаствовать можешь стили подредактировать в css3 желательно, ччтобы без графики, но красиво.
Ну блин, а мне сидеть тут до осени )) Редактироваьт по последней ссылке?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить enclosure в картинки в RSS потока?

Автор eldar2005

Ответов: 28
Просмотров: 8853
Последний ответ 27.05.2017, 11:37:44
от eldar2005
Как показывать баннер (модуль) только для мобильных устройств?

Автор Escander

Ответов: 9
Просмотров: 3531
Последний ответ 27.10.2016, 12:26:56
от Escander
JCH_Optimize Plugin - оптимизирует загрузку страницы. Работает.

Автор Beer

Ответов: 16
Просмотров: 9329
Последний ответ 03.10.2016, 22:33:02
от SeBun
Модуль лезет на все страницы, а должен быть только на главной.

Автор landgraf

Ответов: 23
Просмотров: 11718
Последний ответ 13.05.2016, 13:22:37
от akteon25
Только на главной странице не отображаются Keywords и Description

Автор dobriibobr

Ответов: 3
Просмотров: 1978
Последний ответ 18.06.2014, 01:48:55
от dobriibobr