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

ubunturb

  • Осваиваюсь на форуме
  • 41
  • 0 / 1
  • alert("Двойник Брюса живет в Херсоне");
Есть материал в него хочу вставить картинку, вставляю она слева. Далее что не делаю через CSS она так и остается слева.

Как картинку выровнять по центру материала.

Пример:

материал материал материал материал материал
материал материал материал материал материал
материал материал материал материал материал
                            картинка
                            картинка
                            картинка
                            картинка
материал материал материал материал материал
материал материал материал материал материал
материал материал материал материал материал


ИЛИ


                            картинка
                            картинка
                            картинка
                            картинка
материал материал материал материал материал
материал материал материал материал материал
материал материал материал материал материал
*

Kostelano

  • Давно я тут
  • 525
  • 52 / 1
Re: Картинка по ценьру материала
« Ответ #1 : 03.08.2009, 13:38:48 »
А с помощью редактора...? Там же есть отцентровка.
*

ubunturb

  • Осваиваюсь на форуме
  • 41
  • 0 / 1
  • alert("Двойник Брюса живет в Херсоне");
Re: Картинка по ценьру материала
« Ответ #2 : 03.08.2009, 13:48:47 »
она добавляет свойство элайн сентер но всеравно картинка остается слева

есть у кого на сайте картинки по центру, как вы их выровняли
*

Kostelano

  • Давно я тут
  • 525
  • 52 / 1
Re: Картинка по ценьру материала
« Ответ #3 : 03.08.2009, 14:01:00 »
А какой шаблон используется у тебя? Случайно не стандартный? Ибо он очень корявый в плане отображения, там даже через раз текст можно растянуть на всю новость...

есть у кого на сайте картинки по центру, как вы их выровняли

Ну, опять же, от шаблона зависит.. Попробуй смени шаблон для теста (пусть даже из стандартных какой-то)
*

ubunturb

  • Осваиваюсь на форуме
  • 41
  • 0 / 1
  • alert("Двойник Брюса живет в Херсоне");
Re: Картинка по ценьру материала
« Ответ #4 : 03.08.2009, 14:16:49 »
классно поставил JA_Purity, посмотрел материал и по центу картинка, не думал что зависит от шаблона

Шаблон у меня самописный  ^-^, поменять его никак не могу, нужно доделывать тогда, а что в шаблоне влияет на положение картинки? где это определяться?
*

Kostelano

  • Давно я тут
  • 525
  • 52 / 1
Re: Картинка по ценьру материала
« Ответ #5 : 03.08.2009, 14:19:02 »
Шаблон у меня самописный  ^-^, поменять его никак не могу, нужно доделывать тогда, а что в шаблоне влияет на положение картинки? где это определяться?

Тут я не силен вообще  ;)
*

ubunturb

  • Осваиваюсь на форуме
  • 41
  • 0 / 1
  • alert("Двойник Брюса живет в Херсоне");
Re: Картинка по ценьру материала
« Ответ #6 : 03.08.2009, 17:02:01 »
Ничего не пойму, может кто помочь почему рисунок не хочет выравниваться по центру :'(
*

ubunturb

  • Осваиваюсь на форуме
  • 41
  • 0 / 1
  • alert("Двойник Брюса живет в Херсоне");
Re: Картинка по ценьру материала
« Ответ #7 : 03.08.2009, 17:26:03 »
Все сделал ;D
нужно вставить стиль
Код: css
table.contentpaneopen, table.contentpane {
margin: 0;
padding: 0;
width: 100%;
}
и проследить чтобы не было переопределений стиля и все работает  :laugh:
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заголовок страницы вида Имя материала / имя категории / имя раздела /

Автор rubasket

Ответов: 2
Просмотров: 19312
Последний ответ 24.03.2017, 01:13:50
от mbgr
Поиск материала

Автор rjk112

Ответов: 3
Просмотров: 1541
Последний ответ 31.10.2016, 11:15:50
от rjk112
Кнопки like-dislike для материала

Автор Aiden

Ответов: 0
Просмотров: 1536
Последний ответ 14.05.2016, 13:23:55
от Aiden
Проблема при добавлении материала

Автор illia

Ответов: 4
Просмотров: 1787
Последний ответ 12.05.2016, 12:23:30
от 4erep
Как менять дату создания материала с фронтенда? Или как объединить ее с датой публикации?

Автор shturmanoid

Ответов: 3
Просмотров: 2208
Последний ответ 29.04.2016, 08:22:50
от flyingspook