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

dron

  • Завсегдатай
  • 1581
  • 16 / 10
[Решено] Модули в табах
« : 21.10.2022, 20:39:30 »
Добрый день. Подскажите, в новой Joomla как-то можно сделать модуль с табами и чтобы в эти табы можно было запихнуть модули?
На Joomla 1.5 я ставил модуль mod_veevaa_tabs и он позволял это делать. А как тут это реализовать? Нужен такой вот модуль, который вместил бы в себе например 3 таких модуля (см. вложение). Очень экономит пространство.

Заранее спасибо!
« Последнее редактирование: 25.10.2022, 11:08:57 от dron »
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Модули в табах
« Ответ #1 : 21.10.2022, 20:49:26 »
самое простое модуль HTML и написать с модулями, а так был модуль табов
не скажу правда за 4
индивидуальная помощь: @SetAlexx
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Модули в табах
« Ответ #2 : 22.10.2022, 16:00:39 »
самое простое модуль HTML и написать с модулями
Вот тут не понял. Что вы имеете ввиду?
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Модули в табах
« Ответ #3 : 22.10.2022, 16:16:11 »
ручками табы
в табы через loadmodule вставляете модули
все это в модуле HTML код
индивидуальная помощь: @SetAlexx
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Модули в табах
« Ответ #4 : 22.10.2022, 19:25:58 »
ручками табы
в табы через loadmodule вставляете модули
все это в модуле HTML код
Не знаю как это... Если подскажите - буду благодарен.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Модули в табах
« Ответ #5 : 22.10.2022, 19:34:18 »
да в инете примеров реализации полно как без js так и с js
ппосто 9аьейте в поиске табы допустим на чистом CSS
индивидуальная помощь: @SetAlexx
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Модули в табах
« Ответ #6 : 23.10.2022, 01:22:38 »
В обще - задача очень простая - если вы собрались править(переопределять) шаблоны в Joomla -- у Вас должны быть понятия как сделать ТАБЫ !
На сколько я помню -- то в самой Joomla  - есть такой вывод - через Joomla API /
Вы должны попробовать создать - свои ТАБЫ - и уже - потом спрашивать ....
-- ИТОГО : - Вы можете создавать ТАБЫ ?
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Модули в табах
« Ответ #7 : 23.10.2022, 09:20:27 »
В обще - задача очень простая - если вы собрались править(переопределять) шаблоны в Joomla -- у Вас должны быть понятия как сделать ТАБЫ !
На сколько я помню -- то в самой Joomla  - есть такой вывод - через Joomla API /
Вы должны попробовать создать - свои ТАБЫ - и уже - потом спрашивать ....
-- ИТОГО : - Вы можете создавать ТАБЫ ?
Шаблон стандартный Cassiopeia. В документации про табы у них ничего нет.
В самой Joomla табы бутстраповские и по умолчанию отключены. Я не очень в этом шарю. И опять же не знаю, как потом в табы вставлять модули.
Мне бы проще было использовать какой-то модуль, как и прежде.
Сам я табы создавать не могу, только знаю в теории, что это возможно.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Модули в табах
« Ответ #8 : 23.10.2022, 09:40:43 »
по табам посмотрите в инете( там ерунда делов)
модули вставить или через loadmodule или loadposition
откройте плагин и посмотрите пример
или опять же в инете


по факту с красотой со всей делов на 40 минут
индивидуальная помощь: @SetAlexx
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Модули в табах
« Ответ #9 : 23.10.2022, 10:55:49 »
Пример.
Заходите по ссылке https://mdbootstrap.com/docs/standard/navigation/tabs/
Смотрите и копируете код (нажать show code)
Вставляете в материал
Там где названия вкладок -   ставите свои
Там где контент - вставляете соответствующей кнопкой в редакторе нужные модули

Все
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Модули в табах
« Ответ #10 : 25.10.2022, 11:08:42 »
по табам посмотрите в инете( там ерунда делов)
модули вставить или через loadmodule или loadposition
Большое спасибо! Про loadmodule и loadposition я и не знал.

Пример.
Заходите по ссылке https://mdbootstrap.com/docs/standard/navigation/tabs/
Смотрите и копируете код (нажать show code)
Вставляете в материал
И вам спасибо! Но проще оказалось поставить плагин Tabs and Sliders от Joomlashack.

Ребят, спасибо за помощь и подсказки! Вопрос решен.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться