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

VIPersone

  • Захожу иногда
  • 55
  • 2 / 0
Приветствую, уважаемые

Кто-нибудь знает, как сделать подобное добавление в корзину:
http://www.alecomp.ru/vmre/index.php

На форуме есть топик с добавлением списка товаров одним нажатием, но это не тот эффект. Там все равно в корзину перебрасывает после нажатия, хотя здесь корзина на виду.

Оптимально было бы: эффект добавления как на примере, а в корзину только после клика на корзину т.е. не автоматически после добавления товара пусть даже и группы товаров.
*

probiz

  • Осваиваюсь на форуме
  • 10
  • 2 / 0
Re: Добавление в корзину по примеру:
« Ответ #1 : 24.08.2007, 14:09:56 »
Прекрасно работает

http://joomlaforum.ru/index.php/topic,14894.0.html
*

VIPersone

  • Захожу иногда
  • 55
  • 2 / 0
Re: Добавление в корзину по примеру:
« Ответ #2 : 24.08.2007, 14:31:32 »
В том-то и дело, что не работает... У меня после установки этого хака не добавляется кол-во в корзину и цена. Открываю корзину, а там: цена = 0, кол-во = 1.
И почему-то вверх страницы перекидывает после каждого добавления, что очень не удобно. В примере явно использован другой...
*

nemas

  • Новичок
  • 4
  • 1 / 0
Re: Добавление в корзину по примеру:
« Ответ #3 : 22.10.2007, 22:03:39 »
Расколупал, что на http://www.alecomp.ru/ используется пакет fly-to-basket отсюда
http://www.dhtmlgoodies.com/index.html?whichScript=fly-to-basket (демка http://www.dhtmlgoodies.com/scripts/fly-to-basket/fly-to-basket.html)
Прикрутить - не хватает знаний, хотя, судя по описанию - не сложно.
Уважаемые РНР - гуру, выделите пол-часа своего бесценного времени чтобы связать скрипт с магазином. Штука рулезная и многим нужна!!!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

ссылка на корзину

Автор Listopad

Ответов: 9
Просмотров: 7869
Последний ответ 25.02.2012, 14:35:23
от BAHbKA
Как добавить корзину, список последних товаров, поиск товаров на первую страницу joomla?

Автор X3MAL

Ответов: 2
Просмотров: 3548
Последний ответ 24.12.2010, 22:30:13
от terr
Групповое добавление товаров в корзину

Автор Tier_WerWolf

Ответов: 1
Просмотров: 2551
Последний ответ 18.07.2008, 16:02:45
от morph
Товар не добавляется в корзину joomla 1.5 + VM 1.1 b3

Автор kocmoc

Ответов: 2
Просмотров: 3074
Последний ответ 01.07.2008, 23:51:39
от Gruz
Ошибка при добавлении товаров в корзину.

Автор Evialroot

Ответов: 5
Просмотров: 4422
Последний ответ 25.04.2008, 15:47:05
от Evialroot