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

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
Смотрел на какой версии VM?
ой, да ошибся мой VM на 1.1.8

Проверил сейчас на сайте (в лисе) - все работает! Только вывод подкорректировать...
ну дак это из-за того что я удалил product_publish из файла

highslide к модулю наверно не обязательно прикручивать, так человек при нажатии на картинку просто увеличит её, а наша задача чтобы он как можно меньшим числом кликов напривился к корзине и сделал заказ  ^-^
« Последнее редактирование: 22.01.2012, 13:40:20 от Ecspert »
*

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
а этот модуль отображает стоимость товара? ато у меня нету, может после удаления product_publish
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
а этот модуль отображает стоимость товара? ато у меня нету, может после удаления product_publish
Нет, цена не забивалась. Нужно менять запрос. (А зачем? Ведь это список уже просмотренных товаров -клиент их уже видел и цену знает. Зачем увеличивать число запросов?)
*

glo_om

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
а как бы сделать горизонтальный вывод картинок товаров, никто не знает?
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
модуль класс,а как уменьшить картинку товара? сделать мини эскиз пример 40 на 40
-==Dimir==-
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
to glo_om товары выводятся списком (делался под вывод в колонке (правой или левой).
to Dimir размер превьюшек в данном случае зависит от настроек в VM. Кто-то на форуме озадачивался подобной проблемой  - в конкретном модуле сделать эксклюзивные размеры картинок (не из общих настроек). Попробуйте посмотреть по поиску. Принцип, по идее должен быть общим. Я просто не рассматривал такую возможность...
*

vikont72

  • Новичок
  • 1
  • 0 / 0
Друзья. Ищу помощь.






Вопрос. Куда делось меню?
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Вероятнее всего у модуля избранные категории показа?так?вот он и ппропадает во вложенных
-==Dimir==-
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
А у меня модуль не работает ни на локале, ни на хосте. И ни в одном браузере. Сначала работал, - потом перестал. В чем причина может быть?
Joomla 1.5.22 + VirtueMart 1.1.9.
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
А у меня модуль не работает ни на локале, ни на хосте. И ни в одном браузере. Сначала работал, - потом перестал. В чем причина может быть?
Joomla 1.5.22 + VirtueMart 1.1.9.
Не уверен, но может быть из-за обновления на 1.1.9 (многие скрипты на этой версии либо не работают, либо работают, но некорректно). Попробуйте откатиться назад (на 1.1.7 - к примеру...) Если работа восстановится - значит искать тут.
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Не уверен, но может быть из-за обновления на 1.1.9 (многие скрипты на этой версии либо не работают, либо работают, но некорректно). Попробуйте откатиться назад (на 1.1.7 - к примеру...) Если работа восстановится - значит искать тут.
откатил до 1.1.4 - не работает. Кукки [rvp_bmb] остаются пустыми
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
откатил до 1.1.4 - не работает. Кукки [rvp_bmb] остаются пустыми
Нашел причину. У меня в шаблоне для правой колонки стоит условие <?php if ($page != 'shop.product_details' && $page != 'shop.cart') { ?>. Если без него, - модуль работает. Возможно ли как-то миновать этот недостаток? Ведь из-за одного модуля не годится менять структуру сайта. Ведь стандартный вывод последних товаров работает стабильно. Наверное, данные лучше оттуда брать?
« Последнее редактирование: 29.02.2012, 13:14:32 от olf »
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Нашел причину. У меня в шаблоне для правой колонки стоит условие <?php if ($page != 'shop.product_details' && $page != 'shop.cart') { ?>. Если без него, - модуль работает. Возможно ли как-то миновать этот недостаток? Ведь из-за одного модуля не годится менять структуру сайта
откатил до 1.1.4 - не работает. Кукки [rvp_bmb] остаются пустыми
А как посмотреть в online?
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
А как посмотреть в online?
sport.hostsites.ru
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
sport.hostsites.ru
sport.hostsites.ru
Попробуй перекинуть модуль в левую колонку (на локалке). Если ничего не изменится, придется. видимо менять условие...
У меня тоже правая колонка выводится с условиями, но подобное не происходит
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Получается просто, если модуль на странице есть, - куки летят. Если нету - то нет.
Надо всё-таки как-то умудриться тянуть данные из стандартного функционала просмотренных товаров.
Как раз на странице карточки товара у меня правой колонки с этим модулем-то и нету...
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Получается просто, если модуль на странице есть, - куки летят. Если нету - то нет.
Надо всё-таки как-то умудриться тянуть данные из стандартного функционала просмотренных товаров.
Как раз на странице карточки товара у меня правой колонки с этим модулем-то и нету...
Сейчас попробую на локали у себя проверить эту механику (с условиями на правой колонке).
Да, есть такое. Отлично отрабатывает на левой. На правой никак. Об этом я как-то и не думал...
« Последнее редактирование: 29.02.2012, 13:37:37 от aleks_yug »
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
я плохо знаю жаваскрипт, но может, как-то id товара загонять в куки при событии onClick по ссылке? Как вариант.
*

greog

  • Новичок
  • 1
  • 0 / 0
Очень нужно  вывести цену в этом модуле, по разному пробовал сформировать запрос, но ничего не выходит.


Спасибо aleks_yug, очень удобный модуль.
*

ShuraShumova

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Можете проверить: as-mobile.ru (не в качестве рекламы!)
А что за шаблон у  вашего сайта?))
*

aleks_yug

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

Vyacheslav_100

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
модуль класс,а как уменьшить картинку товара? сделать мини эскиз пример 40 на 40
Dimir, вы нашли решение как сделать изображение другого размера, независимо от настроек VM?
*

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
Нужно добавить цену и кнопку Купить, кто поможет?
*

varX

  • Живу я здесь
  • 2466
  • 141 / 5
  • разработка компонентов
Нужно добавить цену и кнопку Купить, кто поможет?
Бесплатно?
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Что-то я не понял прикол модуля. Он должен работать везде независимо от того находиться посетитель в VirtueMart или нет, т.е. отображать товары, даже если virt не подгружен, правильно? Посмотрел, человек 10 товаров, потом пошел например на главную (или на любую другую страницу где нет вирта) и увидел там эти товары. 1.5.22+1.1.7 - не чего не отбражает. В категория вирта, да работает.
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Разобрался, все работает, осталось только корзину прикрутить
*

Alex_19

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Хороший модуль. Только у меня одна проблема. И на денвере и на хосте вылазит такая ошибка:
Notice: Undefined variable: category2_id in Z:\home\localhost\www\...\modules\mod_virtuemart1.1.x_recently_viewed_products\mod_virtuemart1.1.x_recently_viewed_products.php on line 55 или в строке 58 с изменениями для показа фото.
Если можно, подскажите как исправить.
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Хороший модуль. Только у меня одна проблема. И на денвере и на хосте вылазит такая ошибка:
Notice: Undefined variable: category2_id in Z:\home\localhost\www\...\modules\mod_virtuemart1.1.x_recently_viewed_products\mod_virtuemart1.1.x_recently_viewed_products.php on line 55 или в строке 58 с изменениями для показа фото.
Если можно, подскажите как исправить.
Обратите внимание на дублирование в адресе:
Z:\home\localhost\www\...\modules\mod_virtuemart1.1.x_recently_viewed_products\mod_virtuemart1.1.x_recently_viewed_products.php
Попробуйте отключить СЕФ (штатный и дополнительный, если используется). Скорее всего косячок где-то тут... Но не факт!
Уж больно похож вид сгенерированной ссылки на некорректную отработку при использовании СЕФ-компонентов...

PS, кстати, попробуйте и кэш почистить.
*

imsim

  • Новичок
  • 4
  • 0 / 0
а как бы сделать горизонтальный вывод картинок товаров, никто не знает?
Присоединяюсь, что-то не могу понять, от чего зависит вертикальный или горизонтальный вывод? Подскажите,пожалуйста, кто в курсе?
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
как уменьшить картинку товара? сделать мини эскиз пример 40 на 40?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор bork

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

Автор 4kict

Ответов: 25
Просмотров: 10377
Последний ответ 14.01.2021, 00:09:53
от gartes
Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 1498
Последний ответ 02.11.2017, 10:52:04
от P_B
[Решено] Чебокс "Показывать только товары, которые есть в наличии"

Автор artMelnikov

Ответов: 20
Просмотров: 7739
Последний ответ 28.06.2017, 11:19:51
от OutLaw1
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 53917
Последний ответ 05.02.2017, 11:44:02
от Super_Panda