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

jan_dax

  • Захожу иногда
  • 70
  • 2 / 4
Исправил название темы и немного пост, чтобы было понятнее чего хочу, т.к. немного почитал тему

Сам делаю страницу религиозного журнала.. пока на 1.5 но уже не за горами массовый переход, пока пробую использовать iJoomla Magazine с самописными плагином добавления материала в номер и модулем активного номера. ссылка  на страницу http://dialog.catholic.by/archive
нету ни вывода имени категории (пилится ручками) и куча запросов.. ни шаблонов нормальных (те что есть как то кривовато, мало в них возможностей) и в будущем обновлений не предвидится.

а тут такое http://magazine.joomla.org/. как я понял на К2 написан. как это реализовать?
А самое главное - как можно сделать выпуски-номера журнала как у них http://magazine.joomla.org/issues - ведь это неизбежно мультикатегории как я понимаю?

и как реализовать модуль - в этом номере In this Issue - справа у них. чтобы была и статья и ее категория - в этом модуле внешне все устраивает но как сделать?
« Последнее редактирование: 05.03.2012, 12:26:12 от jan_dax »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Как-то замысловато пишете. Не по-христиански чтоли ^-^. Отвечаю на то, что понял:
1. iJoomla Magazine - редкостное УГ. Давным-давно в далёкой галактике году примерно 2005-м это была реальная альтернатива CCK. Сам пробовал юзать. Использовать в наше время (с учётом того, что это коммерческое расширение) думаю смысла нет.
2. К2/Flexi/ZOO - на них можно реализовать ВСЁ. Сайт любого плана.
*

jan_dax

  • Захожу иногда
  • 70
  • 2 / 4
уже поставил К2. какой никакой пробный контент...  разделение по рубрикам понятно. и вывод вроде бы тож понятен, через модель, меню и т.п.  а как сделано тут http://magazine.joomla.org/ -  а именно ( может сумбурно начал вначале - то уточняю)   В номере -  список статей что в данном номере ( справа) и групировку по номерам http://magazine.joomla.org/issues - выпуски. хотя бы топорно поставить все на свои места, а там уже отшлифовать не проблема.
Насчет других ССК - пробовал ЗОО - но он стоит на другом сайте как каталог приходов. тоже куча допилов. но это другая уже тема

ЗЫ ТО что редкостное  уг - уже увидел когда руками в коде выводил рубрики.  там черт ногу сломит пока найдет что-то.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Переезжаете на 2,5. Там категории бесконечно вложенных уровней. Дельше всё как обычно. Заводите Категории:
Журналы
-2012
--Январь
--Февраль
...
Пишите в них статьи. Красивый вывод как угодно настраивается оверрайдом. Собственно, не вижу смысла тут использовать CCK. Разве что календарик, но и тут можно поставтить BlogCalendarReloaded. Всё лучше.
*

jan_dax

  • Захожу иногда
  • 70
  • 2 / 4
т.е. выпуски журнала - они же категории Joomla.
А как делить рубрики журнала по темам? без ССК
то что недавно пришло на ум (долго думал над этим и тут стрельнуло :) ) - как же там реализовано - а так и сделано - В К2 выпуск - это категория компонента, в ней статьи, а в каждой статье прописаны тэги, которые и относят к той или иной тематической рубрике.
Но с помощью чего реализовать это? На К2 модуль тулз чего-то не предоставляет такой красоты как на сайте, по ссылке выше.
Если остаться на родной Joomla 2.5. то придется писать свой модуль для такого вывода?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
HekimaTags. Погуглите по-форуме. Где-то отписывался пару раз.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Невозможно создать пункт меню K2

Автор vittorio

Ответов: 16
Просмотров: 3919
Последний ответ 24.01.2022, 16:16:31
от kot488
Миграция Joomla k2 на вордпресс

Автор wishlight

Ответов: 9
Просмотров: 2731
Последний ответ 17.12.2021, 09:25:43
от stellagreen
Компонент Яндекс Карты для Joomla 3.x и 2.5.x с интеграцией с K2 и Zoo

Автор xdanru

Ответов: 8
Просмотров: 3524
Последний ответ 22.10.2021, 18:16:53
от yandex_hb
В Joomla! 3.9.1 в к2 не меняется порядок расположения материала

Автор sergspb

Ответов: 0
Просмотров: 826
Последний ответ 12.06.2021, 15:20:52
от sergspb
Не открываются файлы после загрузки на сайт

Автор GeniusUd

Ответов: 1
Просмотров: 853
Последний ответ 01.02.2021, 17:19:38
от voland