Новости 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 Ответов
  • 2983 Просмотров
*

JanP

  • Moderator
  • 107
  • 10 / 0
Machine translation:

Здравствуйте,
Я исправил проблемы в файлах русского языка для Phoca Cart и обновил недостающие переводы с версии 3.5.0 Beta до 4.0.6.
Я не являюсь носителем русского языка, поэтому недостающий перевод был сделан машиной (переводчик Google).

Перевод завершен, и если вы хотите проверить его/пересмотреть/исправить, то это будет замечательно.


Original text:
Hi,

I have corrected problems in Russian language files for Phoca Cart and updated missing translations from version 3.5.0 Beta to 4.0.6.

I am not native Russian language speaker, so this missing translation was made by machine (Google translator).

The translation is complete and if you want to check it/revise it/fix it, then will be great.

You can download it here:
https://www.phoca.cz/download/category/100-phoca-cart-component?start=20 (version 4.0.6)



Thank you, Jan
« Последнее редактирование: 13.04.2023, 20:54:02 от Sulpher »
*

Sulpher

  • Moderator
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Phoca Cart - русская локализация
« Ответ #1 : 13.04.2023, 23:38:36 »
Замечание тем, кто будет править локализацию.

Статусы запаса - непонятно, что это значит. Я посмотрел в английской версии - это Stock Statuses и опции: 2-3 days, in stock, out of stock.
нужно подумать, как лучше это перевести. Может быть, статусы наличия? Предлагайте варианты.
*

sivers

  • Живу я здесь
  • 2591
  • 360 / 0
Re: Phoca Cart - русская локализация
« Ответ #2 : 14.04.2023, 09:01:57 »
Может быть, статусы наличия? Предлагайте варианты.
"Состояние склада" или "Наличие на складе", либо просто "Остатки" ("Остатки на складе").
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Sulpher

  • Moderator
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Phoca Cart - русская локализация
« Ответ #3 : 14.04.2023, 09:47:01 »
"Состояние склада" или "Наличие на складе", либо просто "Остатки" ("Остатки на складе").
Отлично. Наличие на складе - звучит понятно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Phoca Cart - version 5.0.0 RC released

Автор JanP

Ответов: 0
Просмотров: 966
Последний ответ 05.03.2025, 17:42:21
от JanP
Phoca Cart - анонсы версий и пресс-релизы (press-releases)

Автор JanP

Ответов: 31
Просмотров: 3019
Последний ответ 13.06.2024, 14:24:33
от JanP
Цифровые товары на Phoca Cart 3

Автор lalalag

Ответов: 3
Просмотров: 3850
Последний ответ 12.03.2024, 03:15:49
от JanP
Phoca Cart - компонент интернет-магазина для Joomla

Автор JanP

Ответов: 247
Просмотров: 40171
Последний ответ 22.02.2024, 18:06:38
от JanP
Плагин оплаты ЮKassa для Phoca Cart

Автор Sulpher

Ответов: 0
Просмотров: 2200
Последний ответ 09.09.2023, 21:34:54
от Sulpher