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

slaxor

  • Новичок
  • 8
  • 1 / 0
На картинки все видно



Рядом GK 3, как сделать чтоб главная ссылка была такая же, и чтобы надпись другие новости не была на белом фоне?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
На картинки все видно
Картинка картинкой, а вот если бы дали ссылку на сайт думаю проблему удалось бы решить быстрей.
Телепатов здесь не много.
*

slaxor

  • Новичок
  • 8
  • 1 / 0
Сайта пока на Localhost

Вот CSS модуля
Код: css
/* MiniFrontpage CSS*/



.minifp td { padding-right:5px;

}

.minifp td p {

margin-top:3px;



}



.minifp td img {

border:none;

margin-left:0.5em;

margin-right:0.5em;

}



.minifp-anotherlinks {

font-weight:bold;

font-size:100%;

display:block;

padding:5px;

margin-bottom:5px;

background: url(../images/bgheader.gif) repeat-x bottom #F5F5F5;





}



.minifp ul li {

font-size:94%;

padding-left:0;

}



.minifp ul li a {

}



.minifp-introtitle a, .minifp-introtitle a:visited, .minifp-introtitle a:active, .minifp-introtitle a:link {

font-size:120%;

font-weight:bold;

color:#66FF66;

text-transform:uppercase;

}



.minifp-introtitle a:hover {

text-decoration:underline;

}



.minifp-date {

color:#666;

font-weight:700;

font-style:normal;

font-size:90%;

}

.minifp-full-link-wrp {

text-align:right;}

a.minifp-full-link, a:visited.minifp-full-link, a:active.minifp-full-link, a:link.minifp-full-link {

line-height:24px;

font-weight:bold;

text-transform:uppercase;

font-size:90%;

background:#333333;

color:#66FF66;

padding:2px 5px;

letter-spacing:0px;

}



a:hover.minifp-full-link {

text-decoration: none;

background:#FF0000;

}

.minifp-seperator {

line-height:1px;}

Если еще чтото надо, скину
« Последнее редактирование: 10.08.2009, 14:32:30 от slaxor »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема со входом в Админ панель после переноса сайта

Автор Vlad Ermolaev

Ответов: 11
Просмотров: 3943
Последний ответ 12.12.2019, 15:48:25
от SeBun
[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 96494
Последний ответ 06.10.2019, 16:55:45
от PaLyCH
модуль Newsflash: как вывести дату?

Автор joomloid

Ответов: 5
Просмотров: 3589
Последний ответ 03.04.2019, 12:25:27
от pH43
Убрал в настройках материалов "Заголовок как ссылка" - "нет". И в разделе ссылки с заголовков исчезл

Автор Adrian1111

Ответов: 6
Просмотров: 3264
Последний ответ 22.03.2018, 22:17:44
от palexa
Проблема c MobileJoomla

Автор alexmishka

Ответов: 0
Просмотров: 1679
Последний ответ 25.02.2018, 20:32:10
от alexmishka