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

Girevik

  • Захожу иногда
  • 360
  • 1 / 1
Модули для VM. как ставить?
« : 24.05.2011, 12:19:17 »
Скачал шаблон, специально рассчитанный под VM, с ним идет куча модулей.
Там есть разделы: virtuemart_modules и virtuemart_themes
т.е. это модули и темы для VM. Как их ставить? и использовать...
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Re: Модули для VM. как ставить?
« Ответ #1 : 24.05.2011, 12:52:52 »
Тему кладёшь components/com_virtuemart/themes
Модули ставишь, как обычные модули Joomla.

Чтобы сделать точно так, как на демке, скорее всего надо воспользоваться quickstart из скачанного архива. Если он есть, это описано в документации. Но это вариант для сайта с нуля, ибо уже установленные приложения и контент такой быстрый старт затрёт.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Girevik

  • Захожу иногда
  • 360
  • 1 / 1
Re: Модули для VM. как ставить?
« Ответ #2 : 24.05.2011, 14:08:27 »
Спасибо, буду пробовать..
с quickstart'ом какие-то проблемы. там при установке пароль создается не мой, а какой-то стандартный и пишет что то вроде "логин администратора взят с прошлого раза" и я не могу в админку попасть... :(
пробовал качать шаблон из разных мест..
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

CyDb6a

  • Захожу иногда
  • 124
  • 0 / 0
  • От меня не уйдешь =)
Re: Модули для VM. как ставить?
« Ответ #4 : 10.11.2011, 13:02:05 »
У меня virtuemart1.9.8.RC2G на Joomla 1.7.  Никакой папочки themes в com_virtuemart нет, куда же ставить темы?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Re: Модули для VM. как ставить?
« Ответ #5 : 10.11.2011, 23:12:22 »
В VM2.0 другие подходы, там нет тем в понимании 1.1.х. Старые темы не подойдут.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

CyDb6a

  • Захожу иногда
  • 124
  • 0 / 0
  • От меня не уйдешь =)
Re: Модули для VM. как ставить?
« Ответ #6 : 11.11.2011, 20:37:48 »
А что же там вместо тем?  ^-^
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Показать в карточке товара родственные товары из той же категории - плагины? модули? Хоть что-нибудь

Автор Adrian1111

Ответов: 2
Просмотров: 967
Последний ответ 23.08.2017, 14:04:33
от Liss
Ставить ли VirtueMart из-за 10 товаров?

Автор Mehanick

Ответов: 1
Просмотров: 818
Последний ответ 27.04.2017, 20:24:22
от o_fedor
Как отключить сторонние модули на определенных страница VM2?

Автор alex_next

Ответов: 1
Просмотров: 1241
Последний ответ 24.12.2014, 23:06:20
от David_99
Стоит ставить или нет

Автор Stasweb

Ответов: 1
Просмотров: 1233
Последний ответ 11.04.2014, 00:08:34
от Максим Пишняк
Пропадают стандартные модули VM2 в описании товара

Автор sept

Ответов: 10
Просмотров: 1277
Последний ответ 14.01.2014, 19:25:04
от sept