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

Sjslava

  • Новичок
  • 1
  • 0 / 0
Приветствую.

Заметил, что стандартный поиск JoomShopping не умеет искать по текстовым значениям характеристик, так как он ищет по названию товара.

Требуется, что бы при поиске текста, который содержится в текстовом значении характеристики товара, через стандартную форму, в результатах поиска выводились все товары в характеристиках которых содержится данный текст.

Удалось получить результат, если в расширенном поиске в требуемой характеристике дословно указать значение, если указать часть значения - ничего не находит...

Вообще факт того, что это не предусмотрено изначально удивил.
Поиск по форуму ничего не дал.

Есть ли какое то решение, может быть плагин?
Или прошу подсказать куда рыть в коде...
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
не встерчал.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мы починили поиск для JoomShopping

Автор Dimidrol-Pruper

Ответов: 101
Просмотров: 34591
Последний ответ 24.06.2024, 14:20:58
от kit2m2
Поиск заказа по номеру телефона клиента

Автор Shiffer

Ответов: 19
Просмотров: 3192
Последний ответ 07.12.2021, 19:43:38
от anatol81n
Поиск в заказах по полю комментарий? Реализация?

Автор aLLex177

Ответов: 15
Просмотров: 1789
Последний ответ 16.02.2021, 13:57:58
от dss
Стандартный поиск по характеристикам

Автор MadKitty

Ответов: 0
Просмотров: 869
Последний ответ 27.03.2018, 19:24:56
от MadKitty
Поиск в сопутствующих товарах по нажатию Enter

Автор PSN

Ответов: 2
Просмотров: 1480
Последний ответ 11.04.2016, 15:37:02
от PSN