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

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Здравствуйте!
Использую Joomla 1.5
Срочно нужна ваша помощь...

Делаю раздел на сайте для скачивания рингтонов, хочу оформить в виде таблицы "Исполнитель - Название песни - Прослушать через плеер - Скачать (типа "Подробнее" чтобы перейти на страницу скачивания)"
Примерно так:

(кстати сделано на Joomla........)

Пытался ломать ленту новостей, блог лист - результата нет...

Вопрос: Что мне нужно? Плагин? Какой? Или куда то нажать?

Если есть плагин, то лучше с поиском, желательно

Пожалуйста, помогите... Буду очень благодарен за ответ!
*

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
А может все таки возможно как то столбики добавить в News Feeds?
Спасибо за помощь
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Наберите в Google css responsive table и выбирайте адаптивные таблицы на вкус.
А в неё уже ставьте то, что вы хотите.

Спойлер
[свернуть]
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
vipiusss, спасибо за ответ!
Может быть, тупой вопрос, но куда вставлять HTML код отзывчивой таблицы? В index.php? Не будет ли он светиться где не надо? То есть мне нужно чтобы он светился в site.domen/ringtones . В материал добавлять? И да... Как его листать? 100500 треков на одной странице?
CSS код в template.css как я понял...
И можно ли таблицу обновить через админку Joomla?

Спасибо.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
CSS таблицы в CSS шаблона
саму таблицу в материал или в модуль для этой страницы/ссылки
а в таблицу ваше содержимое

всё зависит от вашей пагинации/навигации
например, на такой-то странице(материале)- такой-то кусочек таблицы (или в модуле)...

смотря какая у вас иерархия вашего треклиста
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
vipiusss, еще раз благодарю за ответы.
Поставил таблицу. Настраиваемая, сколько нужно столбиков столько и ставит... Только вот, не очень удобно.. Это конечно не самое главное, думаю, но все же, все время лезть вставлять ссылку на исполнителя, а в ссылке тоже создавать страницу и там же также добавлять его треки и вся эта паутина... По этому я и спросил про категорию, там же хоть все это сложено... Нельзя ли как то добавить эти два столбика "скачать" "плеер"? Или может есть какой то плагин таблицы для J1.5?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
J1.5 очень давно не работал, не подскажу
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Не по теме конечно... Но не знаете ли, что останется от шаблона при переходе на 2.5/3 с 1.5? Остатки?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
А почему на 2.5?
На тройку надо.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

nagav

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
2.5/3

2.5 - 3.X*
Вторую или третью.
А шаблон как? Просто ставил шаблон от 1.5 на 2.5, виден был только баннер... Пытался переделать под 2.5 - 3 по инструкции - белый экран.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Тогда заказывать в комм.разделе перенос сайта на актуальную версию Joomla.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать появление случайных картинок из пяти разных категорий?

Автор Katy93

Ответов: 2
Просмотров: 2785
Последний ответ 03.05.2021, 21:34:20
от sivers
Как сделать бэкап сайта

Автор egorovv

Ответов: 8
Просмотров: 7607
Последний ответ 06.06.2020, 12:09:43
от SeBun
Не добавляется статья в категорию

Автор tegowamila

Ответов: 0
Просмотров: 1135
Последний ответ 06.06.2018, 09:06:17
от tegowamila
Как сделать отображение третьего и далее уровней меню?

Автор Hloja_Blimm

Ответов: 12
Просмотров: 2151
Последний ответ 24.11.2017, 15:12:04
от Hloja_Blimm
Как сделать, чтобы внутренняя страница не показывалась в качестве главной?

Автор kpripper

Ответов: 21
Просмотров: 2460
Последний ответ 19.03.2016, 16:51:11
от flyingspook