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

Ragivort

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
А кто разобрался с проблемой сортировки только по производителям? Мне нужно, чтобы было только одно поле-производитель и отсеивал только по нему
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
А кто разобрался с проблемой сортировки только по производителям? Мне нужно, чтобы было только одно поле-производитель и отсеивал только по нему
А вы в настройки модуля не пробовали заглянуть? там есть выбор по категориям, производителям и так далее и можно поставить вмето да - нет. И тогда у вас уже не будет остальных вариантов для сортировки.
То есть только для производителей оставьте да - всем остальным значение - нет.
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
У меня тут созрел вопрос к Аркадию. На сайте когда делаешь подбор через модуль, он подвисает на 1-3 секунды делая отбор(видимо потому как товаров много). Вот собственно вопрос, нельзя ли на момент пока срабатывает AJAX сделать вывод таблички типа идет загрузка.
Подскажите как и где это реализовать.
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
В платном модуле индикаторы загрузки есть.
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
В платном модуле индикаторы загрузки есть.
у меня есть платный модуль. но хотелось бы и в этом иметь
я думаю многие не отказались бы от такой возможности
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Arkadiy

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

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
Ну в таком случае надо посмотреть в платном и сделать по аналогии.
дак вы бы подсказали где смотреть, если бы я знал как сделать не стал бы спрашивать :)
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Ragivort

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
А вы в настройки модуля не пробовали заглянуть? там есть выбор по категориям, производителям и так далее и можно поставить вмето да - нет. И тогда у вас уже не будет остальных вариантов для сортировки.
То есть только для производителей оставьте да - всем остальным значение - нет.

Я так делал - там производители появляются только в том случае, если выбрана категория и то глюк ккой-то у меня был, производители вообще не появлялись.
вобщем вопрос решил иначе, поставил хак стандартной сортировки.
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

FED

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Подскажите пожалуйста как использовать компонент в нормальном режиме Joomla 1.5.23? У меня он работает только в легаси мод.... Если отключить легаси мод при нажатии кнопки поиск открывается белая страница и написано ДОСТУП ЗАПРЕЩЕН.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
Аркадий, может быть все таки подскажите как сделать значок загрузки на время работы AJAX ?
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

checker

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
по поводу последнего выловленного мной бага - суть оказалась в том что в таблице почему то не удалилось то что я удалил  в магазине - по этому и отображались неправильные параметры... вообще какая то дикость у этого виртуемарта с таблицами...
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
поставил при нажатии на кнопку поиск ничего не работает, строчку в шаблоне прописал толку нет:(((
в чем трабла?нужно сделать фильтр по производителю хоть как помогите пожалуйста!
*

checker

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
может какие то ошибки файрбаг выдает?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
поставил при нажатии на кнопку поиск ничего не работает, строчку в шаблоне прописал толку нет:(((
в чем трабла?нужно сделать фильтр по производителю хоть как помогите пожалуйста!
Фильтр по производителю нужно делать фильтром по производитедю. Злесь их великое множество.
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
мне и по производителю и по цене )мне нужно все что есть в компоненте данном но он не работает почему то:(
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
Установил компонент и модуль, обромил вывод дивами и в итоге нажимая кнопку "Поиск" ничего не происходит. FireBug пишет вот такое:

Код
jQuery("#mod_vm_search_form").formSerialize is not a function
 var qString = jQuery("#mod_vm_search_form").formSerialize();                                        mod_un...arch.js (строка 69)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Либо старая версия jQuery перебивает подходящую, либо jQuery.form не подключена.
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
а как это проверить? я только учусь и с таким ещё не сталкивался.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Ну во-первых проверить галки напротив ява-скриптов в админке модуля и компонента, во вторых посмотреть в код страницы, проверить визуально присутствие нужных и отсутствие ненужных скриптов.
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
Причина была в модуле VTEM Image Stack, вот теперь думаю как их подружить )
*

Al195

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Аркадий, почему-то не все харктеристики из карточки товара попадают в подбор
http://clck.ru/M1Sy а вот на странице подбора характеристик меньше http://clck.ru/M1TU
нет модели, нет объема. При этом заметил что не попадают параметры у которых в админке не заполнено поле: Допустимые значения. Стоит поставить хотя бы одно допустимое значение и модуль подхватывает из базы все параметры. Но тогда в админке при заполнении вкладки Тип товара нет возможности добавить новый параметр, только выбор из Допустимых значений. Можно ли включить в подбор характеристики без заполнения допустимых значений.
« Последнее редактирование: 03.10.2011, 12:45:01 от Al195 »
*

Arkadiy

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

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Странная ситуация произошла, поиск перестал работать, начал копать и нашел что библиотека грузилась два раза (разные версии). Второй раз она грузилась от другого модуля (другая версия). Но что самое странное всё ведь работало до этого с включенными этими двумя модулями, ничего не понимаю, пришлось отключить тот модуль.  ^-^
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Странная ситуация произошла, поиск перестал работать, начал копать и нашел что библиотека грузилась два раза (разные версии). Второй раз она грузилась от другого модуля (другая версия). Но что самое странное всё ведь работало до этого с включенными этими двумя модулями, ничего не понимаю, пришлось отключить тот модуль.  ^-^
А зачем совсем отключать? Перенаправить подключение библиотечки в модуле на ту, от которой работает поиск (они же, по идее, одинаковые). И должно работать и то и другое...
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
неа, не работает, модуль называется mod_up (вверх страницу). Если отключаю в модуле загрузку квери то сразу сайт ломается :(
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
неа, не работает, модуль называется mod_up (вверх страницу). Если отключаю в модуле загрузку квери то сразу сайт ломается :(
Тогда наоборот - отключить квери в поиске. Если модуль на всех страницах, поиск будет подключаться к нему (по идее так)
*

Infosakh

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

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
поставил модуль mod)up в другую позицию отключил в нем подключение джквери, терь нормуль работает и он и поиск. Странно всё таки, каким образом оба модуля работали раньше  :o ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 23289
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10376
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 53909
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28013
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Поиск для магазина автозапчастей как на Exist.ru!

Автор zzaj

Ответов: 21
Просмотров: 8831
Последний ответ 11.05.2016, 13:50:02
от Pahom72