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

art22

  • Захожу иногда
  • 332
  • 2 / 0
проблема с JCE 1.5.7.4
« : 13.06.2010, 20:16:11 »
Здавствуйте! нужна ваша помощь!! я уже 3й день мучаюсь с картинками и с текстом  как сделать так чтобы можно было писать рядом с картинкой?? я даже в таблице сделал с права картинка с лева текст и все криво!! вот

за ранее огромное спасибоооо
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #1 : 13.06.2010, 20:35:29 »
В свойствах картинки надо указать её расположение относительно текста. ну и отступы конечно же.
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #2 : 13.06.2010, 21:08:28 »
я показал!!  align="right" какой отпуск от чего?? как?
*

SpecTR

  • Захожу иногда
  • 105
  • 10 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #3 : 14.06.2010, 11:19:56 »
1) в настройках рисунка поставь положения как надо;
2) проверь в HTML редакторе в тегах рисунка img (для расположения рисунка слева а текста справа от него) должно быть style="float: left;"
*

SpecTR

  • Захожу иногда
  • 105
  • 10 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #4 : 14.06.2010, 11:28:03 »
а если ты делаешь таблицами то нужно делать так
Код
<table style="width: 100%;" border="0" cellpadding="2" cellspacing="5">
<tr style="text-align: left;" valign="top">
<td style="text-align: center; width: 160px;">рисунок</td>
<td style="text-align: left;">
твой текст
</td>
</tr>
или
Код
<table width="100%" border="0" cellpadding="2" cellspacing="5">
<tr valign="top">
<td align="center" width="160px">рисунок</td>
<td align="left" valign="top">
твой текст
</td>
</tr>
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #5 : 14.06.2010, 22:38:17 »
 ^-^
« Последнее редактирование: 29.09.2010, 20:46:24 от art22 »
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #6 : 15.06.2010, 00:00:57 »
Дай ссылку или выложи куда нибудь код страницы и дай ссылку.
*

olaf

  • Захожу иногда
  • 225
  • 23 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #7 : 15.06.2010, 09:58:28 »
SpecTR спасибо за помощь ничего не получилось(((( что еще можно сделать?? я уже дико устал не знаю где искать что делать(((вот результат таблиц....
вот небольшой кусок скрипта может что то не так? это другой..
Сделай без таблиц, вот так:
Код
<img src="images/stories/parik_obratnaya/pariknashivka_parik_1.png" width="397" height="208" align="right" style="float:right" margin:6px;>
<p>Этот парик возникает из-за непосредственного соседства шитье многих нашивок.
Нашивки - это хлопчатобумажные ленты, на которые волосы нашиваются машинным способом.
Diese Perucke entsteht durch das Aneinander Nahen von vielen Tressen. Tressen sind Baumwollbander, auf welche die Haare maschinell aufgenaht werden. </p>
<p>Край париков существует большей частью из зашитой ленты и не нужно видеть по об этом падающим волосам.</p>
<p>Эта обработка является самым простым видом, так как их происходят машинным способом и не вводят в курс дела
при чистом парике нашивок элементы, которые должны имитировать вид кожи головы.
В целом у волос есть вследствие этого очень большое состояние.</p>
Строка с img сделает изображение плавающим справа от текста и на расстоянии margin:6px, а последующий текст будет обтекать такое изображение... Кстати, float не сделает плавающими ячейки таблицы. При табличной верстке вообще не имеет большого смысла ставить align="right" style="float:right". Нужно просто аккуратно вписывать контент в ячейки.
« Последнее редактирование: 15.06.2010, 10:03:13 от olaf »
*

SpecTR

  • Захожу иногда
  • 105
  • 10 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #8 : 15.06.2010, 10:19:34 »
Если у тебя не получается сделать это таблица и просто CSS (style="float: right"), то прикрепи свой CSS файл с шаблона.
Может проблема в нем, а то мы тебе уже предложили кучу рабочих вариантов. Могу еще предложить вариант на div тегах :)
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: проблема с JCE 1.5.7.4
« Ответ #9 : 15.06.2010, 14:34:06 »
окей попробую!!  давай на dvi на всякий случай за ранее спасибо!!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При вставке изображения проблема

Автор polezniy

Ответов: 0
Просмотров: 1126
Последний ответ 25.03.2019, 15:35:51
от polezniy
Проблема с редактором JCE и HTML-код YouTube!

Автор Алишер

Ответов: 14
Просмотров: 8132
Последний ответ 07.08.2018, 10:54:03
от Invictus
JCE обновил и проблема со вставкой картинки

Автор Sedoy

Ответов: 4
Просмотров: 2229
Последний ответ 02.01.2017, 17:25:25
от djumfan
Проблема с кнопками в JCE

Автор Cever

Ответов: 3
Просмотров: 1703
Последний ответ 21.11.2016, 00:35:28
от antony2606
Проблема с загрузкой файлов с кирилическими именами

Автор Mike_3007

Ответов: 1
Просмотров: 1931
Последний ответ 22.08.2016, 17:52:08
от Mike_3007