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

KVT

  • Захожу иногда
  • 98
  • 9 / 0
Уважаемые форумчане.

Мы сделали русификацию Rumi Template Framework ( http://rumi.vandenito.com/ ). Кроме того, нами были сделаны некоторые доработки:

  • интегрирован компилятор CSS - LESS ( http://leafo.net/lessphp/docs/ ) и, естественно, сделан прозрачный механизм компиляции less/*.less файлов при их подключении через фреймворк;
  • добавлен файл buttons.css с классами для стилизации HTML кнопок, кстати, кнопкой может стать любой тег, например <a>;
  • добавлены файлы AJAX.php и json.php для использования в качестве "tmpl" параметра URL страницы при использовании AJAX и JSON;
  • добавлен русский шрифт "Comic Sans" для использования на страницах через Cufon... другие шрифты вы можете добавить самостоятельно.
  • добавлены лэйауты (layouts) для встроенных компонент Joomla и соответствующие стили к ним.

Загрузить эту версию можно, скачав приложенный к сообщению файл, или отсюда.

С уважением,
Константин Тарасов
http://www.cms-service.ru

[вложение удалено Администратором]
« Последнее редактирование: 14.09.2010, 11:07:34 от KVT »
*

Symbios

  • Захожу иногда
  • 53
  • 3 / 0
на русском почитать где нибудь можно что из себя представляет фреймворк?
*

KVT

  • Захожу иногда
  • 98
  • 9 / 0
К сожалению пока только на английском + видео туториалы. Мы планируем у себя на сайте запустить русский раздел по данному фреймворку.
Если кратко:
1. кастомизированные страницы ошибок, оффлайновой страницы и страницы компонента.
2. кастомизимрованные типы обвязки модулей (module chrome), аж 24 штуки с возможностью расширения на все случаи жизни.
3. поддержка выпадающих меню на стандартном модуле меню Joomla.
4. автоматизированная поддержка cufont в шаблоне (использование на странице шрифтов, отсутствующих в системе клиента).
5. шаблоны CSS под типографику и Joomla классы.
6. поддержка разных скинов для одного шаблона (например новогодний скин, праздничный и т.п.).
7. поддержка разных цветовых схем для одного шаблона (CSS с цветовыми схемами).
8. автоматическая поддержка браузерно-зависимых CSS (в директории css/ скина просто создаешь файл ie6.css, ie7.css, opera10.css и т.п. с соответствующими классами и они автоматически подхватываются шаблоном при входе на сайт этим браузером)
9. уменьшение кодирования за счет автоматизации рутинных операций фреймворком.

Это далеко не полный перечень возможностей.
« Последнее редактирование: 14.09.2010, 11:58:12 от KVT »
*

Symbios

  • Захожу иногда
  • 53
  • 3 / 0
установил я этот шаблон на чистую cms, сходу не могу посмотреть существующие позиции модулей с помощью www.example.com/?tp=1
о, тут оказывается все в панели всроено ))
« Последнее редактирование: 14.09.2010, 14:28:47 от Symbios »
*

KVT

  • Захожу иногда
  • 98
  • 9 / 0
Именно так. Фреймворк отменяет ?tp=1 в целях секьюрности. Кстати, в J1.6 вроде тоже хотели убрать эту опцию.
Для лучшего понимания посмотрите видео: http://rumi.vandenito.com/docs-and-tutorial/9-video-tutorials и все сразу станет понятно. Видео без звука, т.ч. считайте, что от языка не зависима. :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

смена шаблона на лету через url ?template=tepmalete_name

Автор Sergic

Ответов: 6
Просмотров: 9557
Последний ответ 08.09.2015, 08:45:39
от MMONSTERR
Пустой template.css в менеджере шаблонов

Автор GTAlex

Ответов: 2
Просмотров: 1954
Последний ответ 28.01.2015, 12:28:44
от AlekVolsk
T3 Framework, проблема с выбором типа меню

Автор Soulfly91

Ответов: 1
Просмотров: 1752
Последний ответ 11.07.2012, 23:04:27
от Soulfly91
Изменение фона в template.css

Автор kisar

Ответов: 6
Просмотров: 2486
Последний ответ 18.04.2012, 22:31:44
от Kaylang
Нужна помощь в устоновке шаблон JS Template full screen 2 на Joomla 1.5

Автор Haitane

Ответов: 1
Просмотров: 2362
Последний ответ 22.02.2012, 13:29:03
от eu4ria