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

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
Имеется модуль Breadcrumbs  - как сделать стиль отображения на сайте отличный от стиля по умолчания. На картинке: вокруг текста идёт пунктирный синий ободок - я хочу чтобы он был. А вот в хлебных крошка (Home) - я не хочу чтобы этот ободок опоясывал этот модуль. Можно ли так сделать? Может надо что-то в Суффикс CSS-класса модуля написать?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Открываете любой css-файл и пишите туда то оформление, которое хотите.
Может надо что-то в Суффикс CSS-класса модуля написать?
Зачем? У элементов модуля и так свои отличительные классы и идентификаторы есть. Что-то вроде #breadcrumbs или .pachway. Смотрите FireBug `ом.
*

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
Открываете любой css-файл и пишите туда то оформление, которое хотите.Зачем? У элементов модуля и так свои отличительные классы и идентификаторы есть. Что-то вроде #breadcrumbs или .pachway. Смотрите FireBug `ом.

Куда надо смотреть?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Куда надо смотреть?
В монитор. По ссылке на слове FireBug перейдите. Там всё в картинках показано. Тут ещё много полезного.
*

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
Я не понял как поправлять в фаербуге. Я понял как, но не знаю где!
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Я не понял как поправлять в фаербуге. Я понял как, но не знаю где!
Уделите вечер своего драгоценного времени, почитайте про основы сайтостроительства. Ссылку я выше дал. Естественно, ничего в файрбаге поправить нельзя! Это инспектор кода а не редактор. Править нужно, например, в блокноте (лучше Notepad++) или дримвивере.
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
Я не понял как поправлять в фаербуге. Я понял как, но не знаю где!
Если вы не против, то позвольте это в ПЕРЛЫ форума, ок?)) за это бесплатно помогу!!))
п.с. извините, не удержался...
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
Ура! Я нашёл решение! Вот - http://www.webmasters.by/articles/joomla/1888-loadposition-loadmodule.html - я просто вставил модуль в статью! Всё отлично!
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
и так для каждой статьи надо будет повторить))))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
и так для каждой статьи надо будет повторить))))

Ну это не сложно. Если сайт делается с нуля, то в конце каждой статьи добавлять {loadmodule breadcrumbs} и на выходе (на сайте) нужная навигация.
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
вам тогда Joomla нафига?))))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Plazmodina

  • Захожу иногда
  • 228
  • 7 / 2
вам тогда Joomla нафига?))))
Сайт делать! Я уже 4 года Joomla пользуюсь!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Шаблон vina_veneno сбрасывает значения по умолчанию

Автор alsa

Ответов: 6
Просмотров: 1617
Последний ответ 17.03.2019, 19:38:32
от alsa
Файл CSS сбрасывает на значения по умолчанию

Автор UN_Tony

Ответов: 4
Просмотров: 1381
Последний ответ 20.09.2018, 14:15:17
от UN_Tony
Сделать всплывающую при наведении кнопку видной по умолчанию

Автор mrmagic

Ответов: 2
Просмотров: 1303
Последний ответ 26.02.2018, 00:32:36
от mrmagic
Нужен пример как присвоить свой стиль одному модулю

Автор nick71

Ответов: 21
Просмотров: 5792
Последний ответ 17.02.2018, 14:44:40
от cirip
Перенести стиль компонента в шаблон

Автор stparts

Ответов: 5
Просмотров: 1593
Последний ответ 07.02.2018, 14:01:10
от stparts