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

Andry

  • Новичок
  • 8
  • 0 / 0
Добрый день!
Подскажите, как, какими инструментами лучше реализовать в Cassiopeia вот такой вид страницы. Т.е. такая как бы со-главная страница.
Вначале небольшой текст на всю ширину страницы. Далее на странице в несколько рядов расположены небольшие картинки-превьюшки, каждая является ссылкой. Под каждой картинкой подпись-ссылка. Картинка просто для примера:



Не нужно чтобы список этих картинок-брендов генерился каким-либо образом, например, по тегу или по категории. Т.е. создавать под это дело "Блог категории" и что-то подобное не нужно. Страница предполагалась простой.

Может че не так делаю? Какие есть варианты?
В интерфейсе создания материала во вкладке "Изображения и ссылки" только одно поле для картинки.
Создание полей? Ну создал я поле типа "Медиа", и что:
1) как изображение сделать ссылкой?
2) как убрать этот чертов кружочек слева от изображения и название поля? (название можно удалить в "Редактирование поля", но от названия остается двоеточие слева от изображения)
3) для подписи создал поле типа "Редактор", блин, так там текст в ссылку не хочет превращаться!))
4) таким образом для каждой картинки на странице создавать отдельное поле? И как их выстроить в несколько рядов, это исполнимо?

Что посоветуете?

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ночер добрый.
если хочется автоматики, то да - поля.
создаете поле типа мульти, а внутри него уже несколько полей: картинка, подпись и т.д
при заполнении потом можно множить сколько влезет эти поля.
но красивый вывод придется делать в шаблоне на php
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
модуль кастом HTML
индивидуальная помощь: @SetAlexx
*

Andry

  • Новичок
  • 8
  • 0 / 0
ночер добрый.
если хочется автоматики, то да - поля.
создаете поле типа мульти, а внутри него уже несколько полей: картинка, подпись и т.д
при заполнении потом можно множить сколько влезет эти поля.
но красивый вывод придется делать в шаблоне на php

effrit, а что значит "поле типа мульти"? Нет такого типа при создании поля. Как его создать? )
*

Andry

  • Новичок
  • 8
  • 0 / 0
модуль кастом HTML
Для меня это пока сложно. Поизучаю вопрос)
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
если сложно то делаете при помощи редактора
вставка картинки, а к на нее вешаете ссылку
индивидуальная помощь: @SetAlexx
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
поде Повторяемый/Repeatable/Subform в зависимости от версии Joomla
в процессе создания запросит поля.
т.е. вы создаете 1 поле (типа строки таблицы), внутри которого создаются другие поля - ячейки.
а при заполнении статьи можете сделать столько строк, сколько нужно.
в вашем случае 1 строка данных будет описывать 1 блок с картинкой, т.е. там полем Медиа, поле текст, после ссылка, к примеру.
для красивого вывода надо будет править шаблон статьи
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
поде Повторяемый/Repeatable/Subform в зависимости от версии Joomla
в процессе создания запросит поля.
т.е. вы создаете 1 поле (типа строки таблицы), внутри которого создаются другие поля - ячейки.
а при заполнении статьи можете сделать столько строк, сколько нужно.
в вашем случае 1 строка данных будет описывать 1 блок с картинкой, т.е. там полем Медиа, поле текст, после ссылка, к примеру.
для красивого вывода надо будет править шаблон статьи
да все так, но это для ТС гемор
ему самый простой вариант нужен
индивидуальная помощь: @SetAlexx
*

Andry

  • Новичок
  • 8
  • 0 / 0
если сложно то делаете при помощи редактора
вставка картинки, а к на нее вешаете ссылку

Да, спасибо, видимо, пока это для меня самый подходящий вариант. Сделаю с помощью таблиц невидимую сетку, а в ней изображения.
« Последнее редактирование: 22.06.2022, 14:54:59 от Andry »
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Да, спасибо, видимо, пока это для меня самый подходящий вариант.
Ну или как вариант - компонент и модуль баннеров, не знаю в каком он виде выводит на 4 без вмешательства в код (с четверкой не работал). но возможно, что будет примерно как надо.
*

Andry

  • Новичок
  • 8
  • 0 / 0
Ну или как вариант - компонент и модуль баннеров, не знаю в каком он виде выводит на 4 без вмешательства в код (с четверкой не работал). но возможно, что будет примерно как надо.
Ок, поизучаю, спасибо!
*

Leila26

  • Новичок
  • 1
  • 0 / 0
Ребят, извините, что может немного не в тему, но не знаю где спросить. У нас проблема с сайтом https://rucaptcha.com/ когда пытались его плагины на сайты интернет магазинов прикрутить лез какой-то левый код. Интересно, это мы что-то начудили или оно было уже до нас?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображение заголовка страницы в поиске

Автор disig

Ответов: 1
Просмотров: 1593
Последний ответ 20.09.2022, 21:43:53
от darkghost
Heix - вопроы по скроллингу страницы

Автор Alex_gs

Ответов: 1
Просмотров: 1321
Последний ответ 26.07.2022, 18:51:42
от Alex_gs
Создание шаблона, совет от опытных. С начала верстка html потом натяжка?

Автор Dolphin4ik_1

Ответов: 4
Просмотров: 982
Последний ответ 30.06.2022, 11:20:05
от sergeytolkachyov
Простой шаблон для создания одностраничника

Автор Kosshechka

Ответов: 0
Просмотров: 627
Последний ответ 10.01.2022, 20:11:01
от Kosshechka