Новости 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 Ответов
  • 3677 Просмотров
*

dimonji

  • Новичок
  • 9
  • 3 / 0
     Всем привет вот накрапал новый модуль для joomla 1.0 - joostina. Демо модуля можно посмотреть на главной странице моей тестовой площадки  http://atlant-kr.com.ua. Принцип работы модуля такой, берем материал (по умолчанию модуль настроен на отображение 5 новостей), справа подгружается интро с мини изображением (изображение загружается полностью с сервера и уменьшается путем CSS правил), при наведении на статью в левой части отображается полное изображение, титл статьи + интротекст. Для того чтобы модуль заработал с тем же оформлением что и на сайте из папки image в архиве модуля копируем все изображение в папку image текущего шаблона вашего сайта. Вообщем тестируем смотрим оставляем свои отзывы. Да и самое главное скрипт модуля построен на библиотеке JQUERY так что возможны конфликтные ситуации с другими библиотеками.

[вложение удалено Администратором]
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
Как пользователь скажу так: замысел хороший, но html-ресайз изображений 534 x 800 - признак дурного тона.
Сразу видно, никогда не пользовались дайлапом 2 килобайта/сек :)
Превью должны либо загружаться отдельными файлами, либо ресайзиться через библиотеку GD.
*

dimonji

  • Новичок
  • 9
  • 3 / 0
     Ты знаешь тут я с тобой полностью согласен, но так как модуль накрапал на скорую руку то он сырой поэтому и выставил данную наработку для всеобщего обозрения, так как считаю что коллективный разум рано или поздно сделают свое дело, и скажу тебе честно даже мысли не было что кто то в наше время использует столь узкие каналы связи, хотя в планах есть идея загрузку изображения сделать через ajax, вот только чуть времени будет больше свободного  ^-^
*

venz

  • Захожу иногда
  • 86
  • 13 / 3
Вкусно, свежо, но действительно требует каналец неслабый. На дайлапе (а его игнорировать еще очень рано, koN абсолютно прав) просто какое то "раскрытие брони". Несколько неапрятно, но дело времени. Список надо бы обрезать с троеточием, плюс у позиций странное поведение - по курсору у нас ссылочка на всю ячейку, а переходим только при клике по заглавию... На это - http://tools.gavick.com/demo/photoslide-gk2 похоже.
*

dimonji

  • Новичок
  • 9
  • 3 / 0
Изначальная идея позаимствована у компонента Frontpage Slideshow, но так как он платный, а как известно русская душа любит все и бесплатно вот и решил сделать что то похожее. Насчет троеточий оговорюсь сразу в настройках модуля на сегодняшний день предусмотрена обрезка длины интро в нужное количество символов. И самое главное спасибо за раскрытие вопроса, принимаются любые отзывы и предложения. И еще забыл добавить что тема тестовой площадки еще не полностью оптимизирована под другие браузеры кроме firefox.
« Последнее редактирование: 24.04.2009, 22:46:35 от dimonji »
*

galstuk

  • Осваиваюсь на форуме
  • 23
  • 8 / 0
Модуль конечно отличный! Спасибо! Хотя,если честно,мне больше понравилась реализация подобного модуля как на этом сайте http://gamejolt.com
  ;)
*

venz

  • Захожу иногда
  • 86
  • 13 / 3
Цитировать
Модуль конечно отличный! Спасибо! Хотя,если честно,мне больше понравилась реализация подобного модуля как на этом сайте http://gamejolt.com
- бодяга неадекватно работает в опере. Не работают переключения "вручную", снимается выделение - в итоге я не понимать где я... Сырое. Ну дело не в этом, примеров тыщи, теже yoo карусель в любых видах и форматированиях. Дело скорее в начинаниях dimonji. Это положительно, плохо, что опубликовал dimonji свою работу на мой взгляд, рановато. А рашпилем еще работать... Без обид, и "...а сделай лучше!"
« Последнее редактирование: 25.04.2009, 00:37:48 от venz »
*

dimonji

  • Новичок
  • 9
  • 3 / 0
- бодяга неадекватно работает в опере. Не работают переключения "вручную", снимается выделение - в итоге я не понимать где я... Сырое. Ну дело не в этом, примеров тыщи, теже yoo карусель в любых видах и форматированиях. Дело скорее в начинаниях dimonji. Это положительно, плохо, что опубликовал dimonji свою работу на мой взгляд, рановато. А рашпилем еще работать... Без обид, и "...а сделай лучше!"
   Уважаемый все дело в том, что насчет оперы я писал в своем предыдущем посте, а если говорить о подобных модулях то 99.9% из них платные что в моем понимании не есть тру. А данный раздел форума как я понимаю существует именно для подобных разработок ( то есть изначально разработка вылаживается на обозрение сыроватой, а потом уже допиливается рашпилем до нужной кондиции).
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
Ты знаешь тут я с тобой полностью согласен, но так как модуль накрапал на скорую руку то он сырой поэтому и выставил данную наработку для всеобщего обозрения, так как считаю что коллективный разум рано или поздно сделают свое дело, и скажу тебе честно даже мысли не было что кто то в наше время использует столь узкие каналы связи, хотя в планах есть идея загрузку изображения сделать через ajax, вот только чуть времени будет больше свободного 

Молодец, и мыслишь в правильном направлении.
Глянь реализацию у "брендов", авось за пару фрагментов кода в суд не подадут ))
*

venz

  • Захожу иногда
  • 86
  • 13 / 3
   Уважаемый все дело в том, что насчет оперы я писал в своем предыдущем посте, а если говорить о подобных модулях то 99.9% из них платные что в моем понимании не есть тру. А данный раздел форума как я понимаю существует именно для подобных разработок ( то есть изначально разработка вылаживается на обозрение сыроватой, а потом уже допиливается рашпилем до нужной кондиции).
  dimonji   - вы не правильно поняли, я говорил о ссылке " Хотя,если честно,мне больше понравилась реализация подобного модуля как на этом сайте http://gamejolt.com" данной galstuk. Мои слова касались только этой ссылки. А вы приняли это на свой счет.
*

dimonji

  • Новичок
  • 9
  • 3 / 0
  dimonji   - вы не правильно поняли, я говорил о ссылке " Хотя,если честно,мне больше понравилась реализация подобного модуля как на этом сайте http://gamejolt.com" данной galstuk. Мои слова касались только этой ссылки. А вы приняли это на свой счет.
       Не проблема я всегда нормально отношусь к здравой критике
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создать модуль фильтрации

Автор kadr

Ответов: 6
Просмотров: 2980
Последний ответ 25.10.2012, 15:32:31
от kadr
Некорректно работает модуль обратной связи.

Автор mr.dil

Ответов: 1
Просмотров: 2318
Последний ответ 08.10.2012, 15:17:57
от mr.dil
Компонент Тестирование (com_testajax for Joomla)

Автор dapmoed

Ответов: 58
Просмотров: 43651
Последний ответ 23.02.2012, 16:44:03
от devul
[download] Модуль новостей NewsFader v.1.0.1.1 (fixed)

Автор yunoshev

Ответов: 73
Просмотров: 50686
Последний ответ 03.02.2012, 13:25:51
от yunoshev
Подскажите как скрыть/показать модуль ?

Автор quake3

Ответов: 3
Просмотров: 3897
Последний ответ 21.05.2010, 13:59:15
от quake3