Новости 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

Голосование

Добавляете ли Вы друзей в профиле форума?

Бывает!
5 (33.3%)
Никогда
2 (13.3%)
А зачем?
5 (33.3%)
А кто это?
3 (20%)
Своё
0 (0%)

Проголосовало пользователей: 15

0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 1478 Просмотров
*

vipiusss

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

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Нет, эта стандартная фишка форума, которой пользоваться смысла нет
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Вы двое будете моими первыми друзьями! ^-^
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Вы двое будете моими первыми друзьями! ^-^
Noooooooooooooooooooooooo!
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Я пользуюсь. Кроме как выделения жирным ников, я не заметила больше никакого профита
« Последнее редактирование: 28.09.2016, 22:32:58 от ELLE »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Пётр, у тебя жирный ник.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Пётр, у тебя жирный ник.
У меня просто кость широкая
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Вы двое будете моими первыми друзьями! ^-^

О_о, теперь Шустрый тоже жирный будет:) Я его добавил!

Кроме как выделения жирным ников, я не заметила больше никакого профита

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

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Насколько я понял, тут не обоюдная функция согласия, а скорее в виде заметки (закладки) что ли или маячка "жирного ника", с напоминанием, что вы его (ник) где-то запомнили (добавили в друзья).

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

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Оффтоп:

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

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Код: php
btn.onclick = function () { 
            search(srch.value)
        }
Создание сайтов, шаблонов, помощь в решении проблем.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Код: php
btn.onclick = function () { 
            search(srch.value)
        }


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

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Код: php
$option = JFactory::getApplication()->input->getWord('option');
$view = JFactory::getApplication()->input->getWord('view');
if (($option == 'com_content') && ($view != 'article')) { ?>
<jdoc:include type="modules" name="user1" style="xhtml" />
<?php } ?>
Создание сайтов, шаблонов, помощь в решении проблем.
*

vipiusss

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не могу понять, о каком именно жирном нике вы говорите? они у меня вроде бы все жирные...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Спойлер
[свернуть]
Создание сайтов, шаблонов, помощь в решении проблем.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
тю... не интересно совсем :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

vipiusss

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Я пользуюсь. Кроме как выделения жирным ников, я не заметила больше никакого профита
профит в том, что ты видишь, присутствует человек на сайте или нет, я выделяю таким образом именно нужных мне (например, клиенты, с которыми общаюсь только через форум, или просто полезные люди)
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Пользуюсь по чуть-чуть

Я пока не успела никого добавить
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
специально что ли зарегистрировались чтобы это написать? :) ну ничего, у вас еще все впереди :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

К новичкам Форума!

Автор ELLE

Ответов: 279
Просмотров: 42662
Последний ответ 17.08.2021, 11:45:03
от Oleg_Oldis
Раздел форума "Битва экстрасенсов"?!

Автор vipiusss

Ответов: 21
Просмотров: 1941
Последний ответ 08.05.2015, 14:53:57
от vipiusss
Участники этого форума, кто они и зачем?

Автор passer

Ответов: 54
Просмотров: 4415
Последний ответ 15.03.2014, 20:22:11
от dmtn