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

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
Добрый вечер.

Делаю график на Open Flash Chart в модуле Joomla 1.5
сделал модуль который запускает swf файл.
Вопросы:
1.При заходе с основной страницы сайта (добавлю адрес, что бы понятно было http://kmvinvest.ru) модуль отображается нормально, если же кликнуть по меню или в командной строке добавить параметры, то график в модуле не отображается. пол дня мучаюсь над этой проблемой.
2. Как обновить график... если захожу ч/з Explorer то при перезапуске страницы флеш ролик обновляется, если же через оперу, ролик считываетс я из  кэша. т.е отображается самый первый вариант графика.

3. И еще вопрос, как можно строить графики в joomla спомощью GD, а то при запуске скрипта они отображаются в виде набров символов.
бизнес-планирование, финансовое моделирование
*

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
Re: Построение графиков в Joomla модуле
« Ответ #1 : 05.12.2008, 22:12:36 »
1 проблему решил...
изменением строки на
open_flash_chart_object( 220, 150, $mosConfig_live_site.'/chart-apri_index.php', false, $mosConfig_live_site.'/' );

остаются не решеными 2 и 3 вопрос
бизнес-планирование, финансовое моделирование
*

lsk

  • Захожу иногда
  • 362
  • 13 / 5
Re: Построение графиков в Joomla модуле
« Ответ #2 : 05.12.2008, 22:34:16 »
Можно подробнее рассказать как сделать такой график. Спасибо.
*

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
Re: Построение графиков в Joomla модуле
« Ответ #3 : 05.12.2008, 22:48:27 »
Вот как я делал
На  сайте http://teethgrinder.co.uk/open-flash-chart/ скачал архив с библиотекой
а дальше по инструкции делал(http://www.simplecoding.org/open-flash-chart-stroim-grafiki.html), кстати достаточно скачать архив в конце статьи.

создал модуль в joomla, в нем прописал :
<?php
include_once 'open_flash_chart_object.php';
$baseURL = $mosConfig_live_site.$_SERVER[REQUEST_URI];
open_flash_chart_object( 220, 150, $mosConfig_live_site.'/chart-apri_index.php', false, $mosConfig_live_site.'/' );

?>
в chart-apri_index.php делал доступ к БД и вычертил график
где chart-apri_index.php -как в статье chart-data.php

надеюсь понятно... если что пиши в аську
бизнес-планирование, финансовое моделирование
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация форм средствами Joomla

Автор VETERINAR

Ответов: 29
Просмотров: 42462
Последний ответ 09.10.2013, 15:14:44
от digitalheart
Как написать системный плагин для Joomla 1.5

Автор Sergey2

Ответов: 2
Просмотров: 32723
Последний ответ 23.06.2013, 15:28:38
от l-key
Плагин рейтинга чего угодно для Joomla 1.5

Автор Obmor

Ответов: 54
Просмотров: 31005
Последний ответ 18.12.2012, 15:01:55
от Raimonds
Модуля кнопка с кодом для Joomla 1.5 или Наш баннер,

Автор leo78

Ответов: 12
Просмотров: 7938
Последний ответ 19.12.2011, 00:35:25
от leo78
joomla + lineage

Автор dUha

Ответов: 7
Просмотров: 7241
Последний ответ 17.08.2011, 23:15:36
от dUha