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

bank0

  • Новичок
  • 2
  • 0 / 0
На мой взгляд - очень востребованная задача: ведение личного счета пользователя, «Личный кабинет + баланс», он же «Депозиты». Т.е. ведение личного (лицевого, текущего) счета в системе. Плюс возможность пополнения \ вывода через платежные системы. Свой счет видит клиент (как в обычном клиент - банке). Через Админку – админ видит все счета и может блокировать счет, менять суммы (естественно с протоколированием - журналированием). 
Это используется в Интернет – магазинах как  «Реализация предоплаты», например, в JoomShopping через бонусную систему
в он-лайн казино и т.п.
Подходящий аналог: "биллинг для joomla". Хотелось бы найти отрытый компонент.
Предлагаю обсудить \ набрать комплект ссылок на компоненты:
А) имеющиеся компоненты применительно к Интернет – магазинам
Б) компоненты к не Интернет – магазинам
В) может для микрофинансовых организаций что - то на Joomla имеется? 

История давняя: еще из веток этого форума 2009 года VirtueMart и Vodes (личный счет/баланс):
"неужели за долгое время не придумали решение проблемы? чтобы на сайте у пользователя открывался счет и после пополнения его через современные веб кошельки, пользователь смог оплачивать товар через лицевой счет?" !
Неужели Прогресс застыл на месте? 

Некоторые ссылки:
  "Ballance" также для JoomShopping
Что про этот компонент можно сказать?
Пример, Не- Joomla, но показательный: 

Интернет-магазин на WordPress с помощью плагина Wp-Recall

"Личный счет. В данный момент модуль магазина может легко подключиться к вашему аккаунту в Робокассе или Интеркассе и сразу начать принимать платежи от покупателей магазина. Личный счет пользователя может быть даже без подключения к платежному агрегатору, администратор может изменить данные по личному счету у любого пользователя из админки"
« Последнее редактирование: 17.04.2014, 22:21:48 от bank0 »
*

Dartveider

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Да и я вот о том же - в данный момент перешел на поиск плагина для Joomla за бугром что найду напишу...
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
 :D Ну так что, нашли компонент биллинга с открытым кодом? А то я собрался писать свой под Joomla 3. Готовый сильно бы упростил задачу.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

AdWeb

  • Давно я тут
  • 877
  • 31 / 3
в хикашоп нечто подобное реализовывал, через альфа поинтс и виртуальные балы (валюту), пользователь покупает пакет поинтов - ему зачисляются поинты, он их тратит потом на товар, делал давно насчет редактирование баланса не помню, с выводом из системы не знаю, вообщет тут какаято система билинга мелька в ней ввод/вывод был реализван и с компонентами типа инет магазинов вроде как норм подвязывалась, гуглите Joomla билинг сайт вроде в оранжевых цветах был
| Хороший Хостинг | Купить Хикашоп | Каталог перекладів Joomla компонентів
PS. спасибо кидать через вебмани: R152456839841 если плюсикофф не хватает :)
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Я раньше писал такую систему для биллинга, работающего с шарингом спутникового телевидения. Сейчас разрабатываю компонент с собственным простеньким магазином. Концепция сайта такова, что создание личного счета просто необходимо. Однако, работать над компонентом начну не раньше июля. Так что, если какие предложения будут, пишите.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Елисей

  • Новичок
  • 2
  • 0 / 0
А платежку какую ставить собираетесь или уже? Я тоже сейчас сайт сделал, осталось найти, что привинтить для оплаты
*

Vladislav2015

  • Новичок
  • 1
  • 0 / 0
рбк, мани и не ломать голову
« Последнее редактирование: 11.03.2015, 14:58:18 от Vladislav2015 »
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
рбк мани и не ломать голову
Здесь речь идет о компоненте личного счета пользователя с возможностью пополнения через разные платежные агрегаторы.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Елисей

  • Новичок
  • 2
  • 0 / 0
рбк, мани и не ломать голову
да думаю, то ли робокассу, то ли валетван
*

кирилл п

  • Новичок
  • 1
  • 0 / 0
да думаю, то ли робокассу, то ли валетван

 я манями доволен
*

Сержж11

  • Новичок
  • 1
  • 0 / 0
да думаю, то ли робокассу, то ли валетван

у меня Wallet1, вроде пока без сбоев работает, менять не планирую
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Social Wiki - сервис автоматического экспорта товар

Автор stixtlt

Ответов: 2
Просмотров: 2308
Последний ответ 12.09.2014, 11:55:03
от stixtlt
Проблема с Auction Factory

Автор zeitalex

Ответов: 0
Просмотров: 1601
Последний ответ 05.12.2013, 15:59:40
от zeitalex
Компонент ClientBase для Joomla Estate Agency 2+ (Joomla 2.5+)

Автор st.al

Ответов: 9
Просмотров: 5600
Последний ответ 11.11.2013, 10:34:30
от st.al
Joomla Estate Agency не режет эскизы!

Автор provizorokl

Ответов: 2
Просмотров: 2863
Последний ответ 09.10.2013, 15:34:00
от provizorokl
Самая простая корзина

Автор K0T

Ответов: 11
Просмотров: 4448
Последний ответ 29.09.2012, 10:28:38
от tefun