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

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
Здравствуйте! у меня проблема с показом изображения в 100% размере... а именно. - когда нажимаю на само изображение в материале, оно грузится во всплывающем окне, но! картинки две подряд, одно приклеено к другому (такому же) в нижней части..... ПОМОГИТЕ!
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
причем, когда второй раз нажимаешь на картинку, она выводится уже нормально, без дубля.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
 и что? никто ничего не подскажет?
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
Вот, решил вставить скрин экрана с данной проблеммой.
если что ещё нужно - говорите....
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
скрина так и нет!
Смотрю....
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Может проще ссылку дать? по скрину код не посмотришь...))) По фотографиям обычно экстрасенсы только лечат...)))
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
Может проще ссылку дать? по скрину код не посмотришь...))) По фотографиям обычно экстрасенсы только лечат...)))
ссылку не могу дать, оно всё на локальном компьютере.
а вот скрина действительно так и нет.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
« Последнее редактирование: 12.03.2013, 03:02:05 от ingavr »
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
это ссылка на скрин.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Дорогой мой..ну а у кого нет аккаунта на Google? Или нет доступа к вашему аккаунту? Вы уж нам то жизнь не усложняйте...)))
А поскольку лечить приходится даже не по фотографии..ибо нет ее, то для начала поотключайте в компоненте загрузку JQuery.Возможно поможет.Ибо дубли с попап окнами это их может быть дело.
Еще хорошо помогает полная переустановка компонента с вновь скачанного дистрибутива.
А так же какая версия Денвера у вас? Возможно у них конфликт.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
Дорогой мой..ну а у кого нет аккаунта на Google? Или нет доступа к вашему аккаунту? Вы уж нам то жизнь не усложняйте...)))
А поскольку лечить приходится даже не по фотографии..ибо нет ее, то для начала поотключайте в компоненте загрузку JQuery.Возможно поможет.Ибо дубли с попап окнами это их может быть дело.
Еще хорошо помогает полная переустановка компонента с вновь скачанного дистрибутива.
А так же какая версия Денвера у вас? Возможно у них конфликт.
JQuery отключал - не помогает, я до этого сделал обновление К2 до следующей версии, и вроде как после этого стало вот так отображаться. а полная переустановка, что вы имеете ввиду?
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
а как сюда фото можно вставить??
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
У вас наверняка стоит плагин оптимизации jch_optimize. Это он дублирует картинку, чего то с кэшем у него не так, наверное.
« Последнее редактирование: 12.03.2013, 06:06:37 от kisBoss »
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
http://vkusniymir.com.ua/vtoryie-blyuda/kartofelnyiy-yozhik.html
вот ссылка на сайт, только вчера перенёс. Помогите!
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
http://vkusniymir.com.ua/vtoryie-blyuda/kartofelnyiy-yozhik.html
вот ссылка на сайт, только вчера перенёс. Помогите!
А в чем проблема то? У меня все открывается нормально.1 окно, как положено в лайт-боксе.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
при первом клике на картинке (на странице материала) картинка открывается с прикреплённой к ней снизу второй точно такой же картинкой. при втором клике (не уходя со страницы) картинка открывается уже нормально (одна)
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
У Вас плагин стоит оптимизации скриптов?
Либо отключайте плагины по одному и узнаете с каким происходит конфликт. Там легче будет понять что делать.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
 это что за плагин такой? хоть как он может называться?
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
(((((((((((( И никто мне не поможет.....................
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Вам что тяжело отключать плагины по одному? У Вас их сотни что ли?
Отключили один плагин, сбросили кэш (если включен, временно лучше вообще отключить), обновили страницу и смотрим. Так и наткнетесь.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
IE9 - нормально, Opera - нормально, Chrome - нормально....в чем проблема то, уважаемый? Може быть это у вас там с браузером что-то?
*

Rex_One

  • Захожу иногда
  • 453
  • 37 / 0
Таки да, работает
Кривизна рук не компенсирует прямизну извилин.
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
)))) решено! мозги компасировал компонент создания опросов Icepolls. После его деинсталяции всё стало на свои места. Урра!
вот только как теперь голосование создавать....... но это уже совсем другая история.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
AcePolls обычно с К2 не конфликтует..на разве что особо злостные, варезные версии...)))
*

ingavr

  • Захожу иногда
  • 283
  • 0 / 0
не знаю, скачивал с какого то Joomla форума по какой-то ссылке, щас уже не вспомню.....
но насколько я понял там нет каких-то системных настроек, чтобы я где-то чего-то не того включил....)))))
пока будем без него....(((
Всем спасибо, кто принимал участие.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как заменить заглушку изображения в к2?

Автор sergspb

Ответов: 0
Просмотров: 2810
Последний ответ 13.10.2022, 14:21:02
от sergspb
K2 + Falang, проблема с поиском

Автор x1

Ответов: 1
Просмотров: 2693
Последний ответ 07.02.2022, 16:15:37
от x1
Изображения в K2

Автор portos

Ответов: 68
Просмотров: 31612
Последний ответ 10.12.2020, 00:45:57
от Divn
Проблема с датой

Автор nick71

Ответов: 0
Просмотров: 802
Последний ответ 02.03.2020, 20:44:18
от nick71
Проблема с нагрузкой на хостинг сервер Joomla 3.9.13 + K2+подсчет хитов

Автор Kokshetau

Ответов: 0
Просмотров: 1026
Последний ответ 27.01.2020, 10:53:02
от Kokshetau