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

kpk17

  • Захожу иногда
  • 257
  • 2 / 0
Re: Модуль доставки "Почтой России"
« Ответ #90 : 14.10.2012, 11:38:03 »
а стоимость упаковки включена в заказ? коробки ведь нужны от почты России
*

esmark

  • Захожу иногда
  • 91
  • 9 / 0
Re: Модуль доставки "Почтой России"
« Ответ #91 : 14.10.2012, 16:08:47 »
коробки и прочие дополнительные расходы вбиваем в соответствующее поле: Дополнительные расходы.
*

kent_193

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #92 : 14.11.2012, 08:34:01 »
у меня возник вопрос, накидал я весовку товара в маркете "габариты и вес" только он не считает ее добавляю два одинаковых товара или разных стоимость одна постоянноЮ но когда меняю регион стоимость меняется:) забавная шляпа конечно:)
*

esmark

  • Захожу иногда
  • 91
  • 9 / 0
Re: Модуль доставки "Почтой России"
« Ответ #93 : 14.11.2012, 19:08:05 »
Значит вес Неправильно указываешь. Нужно указывать через точку: 1.25, а единицу измерения - kg.
Везде где есть сомнения проверяем через отладку Virtuemarta, в том числе и общий вес заказа.
*

kent_193

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #94 : 15.11.2012, 08:32:40 »
Полученные данные
Область продавца, откуда отправляется товар ID - 24
Группа субъектов продавца - 2
Область покупателя, куда доставляется товар ID - 36
Тарифный пояс №3
Общий вес товара не определен! Укажите вес для каждого товара.
По умолчанию общий вес товаров принят за 0 кг.
Оценочная стоимость (=стоимость заказа) - 1500

Расчет стоимости посылки
Тарифный вес посылки - 0.5 кг
Стоимость посылки наземным способом - 127.10
+ Объявленная стоимость наземным способом - 1500 * 0 = 0
+ Дополнительные расходы наземным способом - 50Итоговая стоимость посылки наземным способом - 177.1

Стоимость посылки воздушным способом - 370.9
+ Объявленная стоимость воздушным способом - 1500 * 0 = 0
+ Дополнительные расходы воздушным способом - 50Итоговая стоимость посылки воздушным способом - 420.9

*

kent_193

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #95 : 15.11.2012, 08:33:18 »
хотя вес товара стоит http://s1.ipicture.ru/Gallery/Viewfull/17079392.html фотка
*

kent_193

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #96 : 15.11.2012, 08:50:45 »
Разобрался:) там по русски было написано кг а надо было по английски:) хотя возник еще вопрос че так дешево то http://fastpic.ru/view/48/2012/1115/7059879dfe986c2f49e44bfdb2a3ce8c.jpg.html
*

esmark

  • Захожу иногда
  • 91
  • 9 / 0
Re: Модуль доставки "Почтой России"
« Ответ #97 : 15.11.2012, 21:27:34 »
Ветка модуля 1.0.Х - более не поддерживается. Тарифы нужно самим обновлять вручную. Последняя актуальная версия 1.2.1.
*

kent_193

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #98 : 16.11.2012, 06:11:09 »
ох ты как оно все по хитрому:)
*

vovchikku

  • Захожу иногда
  • 407
  • 1 / 0
Re: Модуль доставки "Почтой России"
« Ответ #99 : 29.11.2012, 13:50:59 »
ссылка битая

Файл помещен в архив !

может кто дать этот модуль?
*

miminfo

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #100 : 20.02.2013, 16:02:51 »
Проставила вес товаров  1 кг, и у меня в цене товара в корзине  $product['product_price']  стало добавляться 10 процентов!  Что это?

При этом собственно до выбора региона доставки еще и не дошло..
« Последнее редактирование: 20.02.2013, 16:09:39 от miminfo »
*

kot_ix

  • Новичок
  • 2
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #101 : 16.05.2013, 23:44:11 »
esmark Не могу написать Вам личное сообщение, прошу свяжитесь со мной есть предложение 387883077
*

satyricon

  • Новичок
  • 3
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #102 : 03.12.2016, 03:57:04 »
Последняя версия модуля 1.3.2 (plg_postcalc_1.3.2.zip), можете скачать здесь https://yadi.sk/d/OAcWcvzC324NRe
*

SergM

  • Новичок
  • 8
  • 0 / 0
Re: Модуль доставки "Почтой России"
« Ответ #103 : 03.05.2017, 18:37:10 »
А 1.3.4 нет ни у кого?
*

SolopoV

  • Давно я тут
  • 576
  • 16 / 0
  • зеленею...
Re: Модуль доставки "Почтой России"
« Ответ #104 : 13.07.2021, 17:36:09 »
Есть версия 1.3.3 от esmark.ru (переработанная под Joomla 3.9.28 & VirtueMart 3.8.8 10472). Используется API postcalc. С OPC - не проверял пока.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки Укрпочта

Автор al_13

Ответов: 13
Просмотров: 8131
Последний ответ 13.05.2021, 12:57:59
от nnnata
Модуль оплаты Liqpay

Автор aragon2

Ответов: 33
Просмотров: 25501
Последний ответ 13.11.2018, 12:51:02
от serge2
Уведомление о заказе в зависимости от варианта доставки

Автор baltazors

Ответов: 0
Просмотров: 3172
Последний ответ 07.06.2017, 11:44:10
от baltazors
Модуль доставки - самовывоз. Как сделать?

Автор demonm

Ответов: 18
Просмотров: 9622
Последний ответ 29.04.2017, 17:31:56
от princeyury
Варианты доставки из админки

Автор El_nik

Ответов: 7
Просмотров: 3533
Последний ответ 27.04.2017, 10:51:38
от El_nik