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

Выравнить шапку
« : 11.03.2011, 07:00:17 »
Здравствуйте, подскажите, пожалуйста, что делать? На разных по размеру мониторах шапка сайта то сдвигается, то не на всю ширину становиться, помогите я новичок. Шаблон сдела прог artisteer.
« Последнее редактирование: 11.03.2011, 07:26:16 от zig82 »
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Re: Выравнить шапку
« Ответ #1 : 11.03.2011, 12:10:16 »
zig82, сейчас я выкурю шевелящую разум сигарету и чуть позже увижу структуру вашего шаблона, прописанные стили элементов и пр.
Или вы сами распИшете поподробнее что к чему?
В комнате с белым потолком
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: Выравнить шапку
« Ответ #2 : 11.03.2011, 20:12:02 »
Ага, после артистера для предоставления кода автор на пару суток точно озадачится
*

zion148

  • Новичок
  • 9
  • 0 / 0
Re: Выравнить шапку
« Ответ #3 : 19.01.2012, 13:47:25 »
Здравствуйте, cвой первый сайт строил на ноутбуке с разрешением 1366х768, отображается корректно все ок. Захожу с другого компа с разрешением 1024х768 контент сдвигается вправо за пределы допустимого шаблона. Помогите разобраться. Сайт regionimport.ru
Спасибо.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: Выравнить шапку
« Ответ #4 : 19.01.2012, 14:03:39 »
Ширину шаблона сделайте 1000px - это общепринятая ширина для фиксированных шаблонов
*

zion148

  • Новичок
  • 9
  • 0 / 0
Re: Выравнить шапку
« Ответ #5 : 19.01.2012, 14:47:40 »
Пожалуйста уточните:
Ширину шаблона изменить:
1. в редакторе шаблонов править файл HTML или CSS
2. как начинается строчка которую требуется изменить?
« Последнее редактирование: 19.01.2012, 14:53:18 от zion148 »
*

zion148

  • Новичок
  • 9
  • 0 / 0
Re: Выравнить шапку
« Ответ #6 : 19.01.2012, 17:29:05 »
Отпишусь как решил,для тех кому вопрос тоже интересен и непонятен.
Внес строчку данную в container_2 в файл templates/папка шаблона/css/templates.css
вот что вышло:

#container_2 {
min-width:1100px;
width:100%
text-align: left;
margin: 0 auto;
background: none;

А первый раз прописал в #container_1 { ничего не вышло.
Теперь текст отображается правильно.
Сайт www.regionimport.ru

Проблема как подправить слайдер?
На мониторах 3:4 с разрешением 1024х768 он выходит за рамки, а на 1366х768 все ОК.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Меню Залезло под шапку (

Автор liqberry1

Ответов: 2
Просмотров: 1470
Последний ответ 22.12.2014, 17:38:46
от liqberry1
Вставка в шапку сайта меню

Автор avaron

Ответов: 1
Просмотров: 1561
Последний ответ 11.09.2014, 10:34:55
от kik84
Как вставить кнопки социальных сетей в шапку каждой новой новости?

Автор ChupVulf

Ответов: 4
Просмотров: 3007
Последний ответ 07.12.2013, 00:11:57
от ChupVulf
Как увеличить место под шапку в шаблоне crystalline?

Автор bazter

Ответов: 6
Просмотров: 2584
Последний ответ 27.08.2013, 12:16:17
от bazter
Как встроить ссылку в шапку шаблона?

Автор Georgiy77

Ответов: 15
Просмотров: 4335
Последний ответ 25.09.2012, 11:26:33
от tubus777