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

savenko

  • Захожу иногда
  • 83
  • 8 / 0
Установил и настроил программу CSVImproved и теперь встал вопрос управлением ассортиментом. Мне присылаются прайс-листы где около 6000 наименований товаров. Как Можно оперативно следить за всеми товарами и обновлять цены на своем сайте?  Очень долгая работа делать в екселе сортировку от А до Я и потом сравнивать столбцы. Как вы выходите из ситуации?
« Последнее редактирование: 13.06.2010, 01:00:41 от savenko »
*

BagGins

  • Новичок
  • 4
  • 1 / 0
Загружать .csv файл с двумя столбцами: product_name, product_price. Таким образом можно быстро обновить цены любого количества позиций.
product_name (имя товара) в Вашем прайс-листе должно полностью совпадать с именем товара в VirtueMart.
Если в прайсе и в магазине совпадают артикли, используйте их вместо имени.

В настройках шаблона CSVI, которым будете делать импорт, нужно поставить галочки:
Перезаписывать существующие записи;
Игнорировать несуществующие товары;
*

MeGaBrAiN

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Как выбрать минимальную цену, если прайсов несколько и товары могут пересекаться в нескольких прайсах?
*

Pirojok

  • Новичок
  • 4
  • 0 / 0
Мне присылаются прайс-листы где около 6000 наименований товаров. Как Можно оперативно следить за всеми товарами и обновлять цены на своем сайте?  Очень долгая работа делать в екселе сортировку от А до Я и потом сравнивать столбцы. Как вы выходите из ситуации?

У меня один прайс на 11 тысяч и второй на 4 тысячи, такая же проблема.
*

Ferax

  • Новичок
  • 3
  • 0 / 0
У меня один прайс на 11 тысяч и второй на 4 тысячи, такая же проблема.

Есть вот такие программы для компоновки прайсов, можете попробовать их даже бесплатно.
*

Pirojok

  • Новичок
  • 4
  • 0 / 0
Есть вот такие программы для компоновки прайсов, можете попробовать их даже бесплатно.

Спасибо за подсказку, на картинках софт выглядит очень даже хорошо.


Надеюсь в работе он так же хорош.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки при импорте товара Joomla 1.5.x + VM 1.1.9 + CSVI 1.9

Автор sda-sot

Ответов: 0
Просмотров: 3720
Последний ответ 27.12.2014, 09:50:06
от sda-sot
Экспорт картинки товара и краткого описания в фотоальбомы в группе ВКонтакте

Автор mostachev

Ответов: 1
Просмотров: 3265
Последний ответ 25.03.2014, 02:07:22
от Dutch
[Решено] Адрес товара в CSV. Экспорт прайса с адресом товара.

Автор Eholov

Ответов: 0
Просмотров: 1436
Последний ответ 26.02.2014, 21:10:43
от Eholov
Запретить обновление категории товара

Автор anteo

Ответов: 1
Просмотров: 1371
Последний ответ 30.08.2013, 09:21:11
от anteo
Проблема при импорте товара (csv Improved 1.9)

Автор serJO

Ответов: 1
Просмотров: 1715
Последний ответ 04.06.2013, 15:20:38
от serJO