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

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
Такая проблема. Если я выбираю на странице отображение материала несколько категорий , то у меня отображаются текста полностью на странице. НЕ срабатывает ограничетель на кол-во слов в вводном тексте. Только если я в ручную буду ставить в каждом тексте "Подробнее"
Если ставлю 1 категорию, то ограничитель срабатывает, и материал отображается не полностью, а как нужно.

Надеюсь внятно смог объяснить ;)
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
все еще актуально.

где-то в шаблоне надо что-то прописывать, верно?
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
ни кто не сталкивался с таким?
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
А где у вас задаётся количество слов для вводного текста?
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
А где у вас задаётся количество слов для вводного текста?

везде его задавал.
в настройки категорий. не знаю, конечно, влияет это или нет , но у меня где-то зависимость настроек от другой, где-то сам делал, но они везде разные. (и ограничитель слов, и вывод материала ( главный, второй и т.д.)
хотя настройки вывода материала выводиться в категориях, при выборе нескольких

а глобальные настройках там вроде настройка RSS , или я не так понял? но там тоже ограничитель стоит)


я пробовал и выводить "последние материалы категорий или автора" - там такая же фигня, не срабатывает ограничитель. текст выводиться полностью.

в глобальных настройках стоит, что вводный текст и полный в одном окне.
если в настройках убрать вывод "вводного текста" - то отображается только фотографии, без текста.
« Последнее редактирование: 29.10.2012, 11:31:20 от mcAnd »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Не знаю как вы поняли, а я из вашего ответа вообще ничего не понял.
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
Не знаю как вы поняли, а я из вашего ответа вообще ничего не понял.

фигово. сейчас по другому попробую сказать
в глобальных настройках у меня стоит, что бы вводный и полный текст были в одном окне редактора.
ограничители я выставляю в настройках категории. но они для каждой категории свои (это может влиять?)
так же, у меня есть категории, где настройки присвоены от другой категории.
« Последнее редактирование: 29.10.2012, 11:40:55 от mcAnd »
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
help help )

может я что-то неправильное дело?
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
help help )
может я что-то неправильное дело?

Очень неправильно - вы нарушаете правила форума.
Имейте терпение, почему вы считаете что именно ваш вопрос самый срочный.
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
Очень неправильно - вы нарушаете правила форума.
Имейте терпение, почему вы считаете что именно ваш вопрос самый срочный.

буду терпимее )
спасибо )


*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
все еще актуально.
как сделать так, что бы срабатывал ограничитель для вводного текста вы выводе нескольких категорий.?
*

mcAnd

  • Захожу иногда
  • 68
  • 0 / 0
так же, когда делаю поиск по тэгам, материал отображается полностью.
если в настройках уберу "отображать вводный текст", то отображается только картинка. без текста.
а если ставить "отображение вводного текста", то отображается весь =(
ограничение по словам не работает.

ввод текста в редакторе в одно окно
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мультиязычность для материалов К2

Автор Kokshetau

Ответов: 5
Просмотров: 1137
Последний ответ 21.11.2020, 23:36:12
от Kokshetau
K2 - редактирование материалов с фронта и ограничения

Автор x1

Ответов: 0
Просмотров: 949
Последний ответ 14.02.2020, 15:39:44
от x1
Массовое создание (загрузка) категорий в K2

Автор lgmax

Ответов: 3
Просмотров: 1193
Последний ответ 05.09.2019, 00:35:35
от Septdir
[Решено] Не работает (не отображается) K2 media manager

Автор raidho

Ответов: 1
Просмотров: 1618
Последний ответ 19.07.2019, 22:02:58
от zod3d
Не работает русификация K2 v2.8.0 |

Автор sergspb

Ответов: 5
Просмотров: 8275
Последний ответ 17.05.2019, 21:48:26
от serhy