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

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Как организовать нечто похожее на:
http://www.kz-kurort.ru/new/index.php?option=com_content&view=category&layout=blog&id=70&Itemid=65
Уж больно понравилось)
Если не сложно то по пункатам распесать...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Каталог средствами com_content
« Ответ #1 : 25.06.2009, 12:33:07 »
эээээээээээээээээ
пункт нумер раз, он же-последний:
взять стандартный функционал, забить несколько статей в категорию, создать пункт меню по типу "блога категории"
всё.

ну добавить стиль за заголовков. чтобы минииконка рисовалась рядом со, скажем, заголовком типа h3 (а не вставлять 10 изображений рядом с выделенным жирным шрифтом фрагментом)
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #2 : 25.06.2009, 12:41:36 »
Сделал, всё выводит одним куском, как разделить текст на краткий и полный?
*

Funkdoobiest

  • Захожу иногда
  • 244
  • 25 / 13
Re: Каталог средствами com_content
« Ответ #3 : 25.06.2009, 12:46:13 »
разделитель материала вставте. В редакторе есть кнопка "Подробнее", все что будет после черты в превью показываться не будет.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Каталог средствами com_content
« Ответ #4 : 25.06.2009, 12:46:39 »
кнопка внизу поля для ввода текста.
вставляет красную линию. это и есть разделитель на интро и основной текст
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #5 : 25.06.2009, 13:07:58 »
Хммм, интересная весч, кнопки пропали!!! ппц, и хз когда, тока сейчас заметил, чё делать?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Каталог средствами com_content
« Ответ #6 : 25.06.2009, 13:15:38 »
Хммм, интересная весч, кнопки пропали!!! ппц, и хз когда, тока сейчас заметил, чё делать?
включить плагин Editor Button - Readmore
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #7 : 25.06.2009, 13:21:16 »
мм, ясно в чём проблема, плагина нет, щас залью...
спасибо, большое...
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Каталог средствами com_content
« Ответ #8 : 25.06.2009, 13:26:30 »
мм, ясно в чём проблема, плагина нет, щас залью...
спасибо, большое...
его заливать не надо он стандартный :)
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #9 : 25.06.2009, 13:45:29 »
Нууу, видно я его потёр, когда чистил Joomla)
Кста. ещё вопрос: Как можно сделать разные стили на полный текст и краткий? А то я так понял там класс у них один, это не оч хорошо(
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Каталог средствами com_content
« Ответ #10 : 25.06.2009, 13:49:07 »
на счёт стилей.
когда выводишь через блог, то появляется уникальный контейнер по типу <table class="blog" cellspacing="0" cellpadding="0">
если отнаследовать нужные параметры от стиля blog, то в режиме вывода блога можно получить уникальное формление
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Каталог средствами com_content
« Ответ #11 : 25.06.2009, 13:51:35 »
ну или написать маленький мамбот, который будет заворачивать интро в уникальный стиль и поставить этот мамбот на самое первое место, чтобы срабатывал, пока ещё не удалено вхождение разделителя в материале...
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #12 : 25.06.2009, 13:54:48 »
Кароче задать новый класс полному тексту не реал, я так понял?
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #13 : 25.06.2009, 13:56:04 »
с мамботами я не дружу) чесн говоря вообще плохо понемаю, что это такое) т.ч.))
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #14 : 26.06.2009, 10:25:51 »
Ещё вопрос, а есть какой нибуть модуль, каторый выводил такого рода блоги в виде модуля, а не через меню? Просто мне необходимо поверх списка блогов вставить текст
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Каталог средствами com_content
« Ответ #15 : 26.06.2009, 12:09:33 »
Ещё вопрос, а есть какой нибуть модуль, каторый выводил такого рода блоги в виде модуля, а не через меню? Просто мне необходимо поверх списка блогов вставить текст
есть стандартный модуль Custom HTML вставляй в шаблоне куда надо и все.
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #16 : 26.06.2009, 13:36:00 »
Всем спасибо, разобрался сам...
« Последнее редактирование: 26.06.2009, 13:41:43 от Blockhead »
*

Blockhead

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Каталог средствами com_content
« Ответ #17 : 26.06.2009, 13:44:43 »
Ещё вопрос, а если мне надо вывести скажем на рандоме 2 любые статьи в виде урезанного текста?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JFolder::create: Невозможно создать каталог Внимание! - Не удалось переместить файл

Автор sayber

Ответов: 30
Просмотров: 67678
Последний ответ 14.07.2017, 12:05:37
от araiguma
Каталог со сравнением

Автор Andrew1110

Ответов: 5
Просмотров: 1521
Последний ответ 28.12.2013, 00:07:53
от altvvc
Простой каталог компаний

Автор pvstudio

Ответов: 5
Просмотров: 1904
Последний ответ 03.09.2013, 09:53:39
от altvvc
Почему в URL перед index.php?option=com_content&... подставляется категория??

Автор NlCK

Ответов: 4
Просмотров: 2386
Последний ответ 28.12.2012, 13:19:24
от NlCK
корневой каталог, HTML rjl

Автор sorokina_ev77

Ответов: 3
Просмотров: 2645
Последний ответ 13.06.2012, 16:37:23
от dexteron