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

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Языковой файл
« : 09.01.2014, 00:13:38 »
Столкнулся с такой проблемой.Правил языковой файл по адресу language/ru-RU/ru-RU.com_jshopping.ini и при обновлении заметил что  на сайте исчезло слово подробнее у товара. а стало просто _JSHOP_DETAIL . Правил я совсем другое - В список пожеланий.Потом попробовал любое слово изменить и снова эта же проблема.В чем трабл?
-==Dimir==-
*

nevigen

  • Moderator
  • 10449
  • 863 / 25
  • http://n*****n.com
Re: Языковой файл
« Ответ #1 : 09.01.2014, 00:50:03 »
/components/com_jshopping/lang/ru-RU.php
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Re: Языковой файл
« Ответ #2 : 09.01.2014, 00:52:03 »
/components/com_jshopping/lang/ru-RU.php
Когда правлю тут, вообще ни чего не происходит
-==Dimir==-
*

nevigen

  • Moderator
  • 10449
  • 863 / 25
  • http://n*****n.com
Re: Языковой файл
« Ответ #3 : 09.01.2014, 01:22:41 »
шаблон дивный старый ?
были попытки перейти и перевести на нормальные ленги. но разработчики так и остались на старом подходе.
потому Дивный тоже вернули в старый вариант. что то у вас танцы между версиями навреное.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Re: Языковой файл
« Ответ #4 : 09.01.2014, 01:24:26 »
шаблон дивный старый ?
были попытки перейти и перевести на нормальные ленги. но разработчики так и остались на старом подходе.
потому Дивный тоже вернули в старый вариант. что то у вас танцы между версиями навреное.
Да, шаблон дивный.наверняка старый.Как сейчас быть? Я просто не могу усечь зависимость одного слова от другого?!
« Последнее редактирование: 09.01.2014, 01:27:43 от Dimir »
-==Dimir==-
*

nevigen

  • Moderator
  • 10449
  • 863 / 25
  • http://n*****n.com
Re: Языковой файл
« Ответ #5 : 09.01.2014, 01:43:18 »
нуу как быть
смотреть правильно ли задаете перевод.
и смотреть в файлах шаблона может там используется вывод не через нормальный ленг, а через ЖШный.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Re: Языковой файл
« Ответ #6 : 09.01.2014, 01:47:20 »
Я пробовал править оба файла. Реагирует только на Joomlaвский, но при редактировании вылазит эта ошибка, даже если сменить одну букву!А Жшный не реагирует
-==Dimir==-
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Языковой файл
« Ответ #7 : 09.01.2014, 09:36:16 »
Давайте лучше на примерах.
Выведите сюда код, который выводит кнопку "Подробнее"
И напишите что именно Вы добавляете и в какой языковой файл.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переопределить/Пользовательский файл functions.js

Автор pavel2950

Ответов: 7
Просмотров: 865
Последний ответ 12.09.2017, 23:17:53
от dmitry_stas
где находится файл уведомлений после действий

Автор buto

Ответов: 1
Просмотров: 1129
Последний ответ 18.08.2016, 17:48:34
от dmitry_stas
Отсутствует файл paymentdata.log

Автор temirlan_a

Ответов: 7
Просмотров: 1337
Последний ответ 31.07.2014, 14:06:37
от temirlan_a
Языковой файл для корзины

Автор darknefrit

Ответов: 4
Просмотров: 1150
Последний ответ 21.05.2014, 22:41:47
от victorantoniak
Ссылка на PDF файл на странице окончания заказа

Автор John_Flores

Ответов: 0
Просмотров: 1190
Последний ответ 25.04.2014, 14:45:49
от John_Flores