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

devirus

  • Захожу иногда
  • 140
  • 6 / 0
А нет ли где готового модуля/плагина jquery-корзины?

Чтобы без перезагрузки обновлялась общая стоимость и пересчитывались цены при изменении количества. Это в самой корзине.
И на странице товара и категории чтоб товары тоже без перезагрузки добавлялись, ну и заодно хорошо бы количество товара на странице категории сразу писать…

Уже заказывал у программистов (больше с ними не работаю), даже есть рабочий вариант на старой версии магазина, пробовал разобраться что к чему и перенести на новую, но не получилось, не так хорошо ориентируюсь в код. :(
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: AJAX функционал (возможно за плату)
« Ответ #1 : 11.06.2012, 09:01:01 »
Аякс корзина от разработчиков не устраивает ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: AJAX функционал (возможно за плату)
« Ответ #2 : 11.06.2012, 09:50:07 »
Ведь помню же где-то видел… Спасибо.
По скринам очень похоже на то что нужно, даже вроде количество можно менять, интересно в самой корзине тоже автоматически обновляется (или там уже нет такого понятия и сама корзина как модуль). Вот бы демо пощупать… и ведь тоже помню видел у кого-то(
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: AJAX функционал (возможно за плату)
« Ответ #3 : 11.06.2012, 10:01:32 »
это расширение позволяет даже атрибуты сразу в категории выбирать....
но! подпиливать придется.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: AJAX функционал (возможно за плату)
« Ответ #4 : 11.06.2012, 10:06:35 »
шикарно, куплю, посмотрим, отпишусь для народа :)

надеюсь только шаблон достаточно будет подпилить)
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: AJAX функционал (возможно за плату)
« Ответ #5 : 11.06.2012, 14:32:09 »
Ну что, все потребности удовлетворены :) Отличный плагин… Отпала необходимость в обычном модуле.

Только вот не пойму почему мой дописанный div внутри li исчезает без обновления, а когда обновишь появляется… (ну очень не хватает мне этого дива, где копать?)

http://nebofon.ru/test/internet-magazin
« Последнее редактирование: 11.06.2012, 14:38:08 от devirus »
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Re: AJAX функционал (возможно за плату)
« Ответ #6 : 13.06.2012, 15:49:25 »
Может кому пригодиться.
При удалении товара из аякс-модуля, вот этот скрипт переписывает ваш шаблон (тое сть если правили шаблон, в этом скрипте тоже надо править):
components\com_jshopping\js\cartajax.js
Там внизу то что в тегах <li>

Еще можно заменить строку
Код
jQuery('.cartajax-module').find('.cartajax-module-total span').html(formatprice(parseFloat(cart.price_product)))
на
Код
jQuery('.cartajax-module').find('.cartajax-module-total span').html(formatprice(parseFloat(cart.price_product)).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 "))

Тогда между тысячами будет пробел, а не просто слитное число.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AJAX обновление отзывов

Автор xxx87

Ответов: 3
Просмотров: 1096
Последний ответ 05.06.2015, 14:08:02
от xxx87
Доработка Jshopping Cart Ext.+ AJAX для JS Version 4.9.2

Автор osobist

Ответов: 3
Просмотров: 1888
Последний ответ 20.03.2015, 17:26:09
от dmitry_stas
Подгрузка товаров AJAX

Автор SWoz

Ответов: 26
Просмотров: 8866
Последний ответ 19.11.2014, 11:16:41
от sibay70
Вывод подкатегорий из разных категорий, возможно ли?

Автор e-Claire

Ответов: 2
Просмотров: 1018
Последний ответ 26.01.2014, 00:06:21
от e-Claire
Возможно ли организовать вывод товара таблицей?

Автор tsts

Ответов: 1
Просмотров: 1211
Последний ответ 25.06.2013, 09:03:08
от nevigen