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

Morh

  • Захожу иногда
  • 118
  • 11 / 0
Добавляю кнопки фейсбука. При нажатии на кнопку "мне нравится" или "отправить", всплывающее окошко прячется за границей контейнера для текста:
Спойлер
[свернуть]

На сайте фейсбука, об этом есть заметка, якобы, можно добавить свойство overflow и все будет нормально. Но, когда я добавляю вышеуказанное свойство блоку социальных кнопок (с параметром visible) ничего не происходит, всплывающий блок все так же прячется :(.

Ок, добавляю overflow с параметром auto - при нажатии на "отправить" или "мне нравится" появляются скроллеры и окошко уже можно посмотреть проскроллив вниз:
Спойлер
[свернуть]

Но я хочу, чтобы у меня было вот так:
Спойлер
[свернуть]

Каким образом так сделать?
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
добавить z-index:9999;

Работает вкупе со свойством position: absolute | fixed | relative | static | inherit
*

Morh

  • Захожу иногда
  • 118
  • 11 / 0
не получается  :(

При значении position - absolute, блок с кнопками опускается ниже границы контейнера для текста, а при значении fixed - вообще пропадает. При значении же relative - отображается нормально, но, при этом, даже при значении z-index: 99999999999999999999999999999999999999999999999999999999999999999999999; - всплывающее окно все-равно обрезается..
*

Sliapy

  • Захожу иногда
  • 318
  • 48 / 4
С адресом было бы проще посоветовать что-то конкретное.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Смотрите индекс рамки, за которую он прячется.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Вы б ссылку на свой сайт дали, чем гадать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить сторонние кнопки CSS в модули и плагины Joomla?

Автор bayersoff

Ответов: 12
Просмотров: 6075
Последний ответ 23.12.2018, 17:42:46
от effrit
Не могу найти от куда грузятся картинки

Автор katalog_2003

Ответов: 2
Просмотров: 1332
Последний ответ 01.03.2016, 19:56:17
от katalog_2003
line-height куда это надо вставлять?

Автор kunsaid

Ответов: 2
Просмотров: 1026
Последний ответ 19.02.2016, 10:47:43
от dmitry_stas
Нужно добавить еще 1 строчку, Как ?

Автор Xzizz

Ответов: 4
Просмотров: 1265
Последний ответ 27.12.2015, 12:11:26
от ShfVD
Как добавить колонки в футер?

Автор muria

Ответов: 2
Просмотров: 1838
Последний ответ 09.11.2015, 15:31:10
от muria