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

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
как сделать такую ссылку
« : 04.07.2009, 16:53:29 »
как можно в пункте меню сделать активную ссылку без url
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: как сделать такую ссылку
« Ответ #1 : 04.07.2009, 17:07:48 »
Непонятно. Приведите пример кода, который Вам в итоге нужен, тут.
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #2 : 04.07.2009, 17:31:20 »
Непонятно. Приведите пример кода, который Вам в итоге нужен, тут.
например у меня в пункте меню есть
Продукция (надо чтобы этот пункт был просто ссылкой ни куда не ведущей)
   Хлеб
   Масло
   Молоко

а что если я просто в ссылке поставлю #
конкретнее не могу объяснить так как сейчас все таки придумал как сделать навигацию не простую, если хочешь вникнуть то вот посмотри  http://joomlaforum.ru/index.php/topic,69840.0.html
« Последнее редактирование: 04.07.2009, 17:36:35 от Artyomii »
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: как сделать такую ссылку
« Ответ #3 : 04.07.2009, 17:50:26 »
В "URL" введите javascript:void(0);
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #4 : 04.07.2009, 20:50:06 »
В "URL" введите javascript:void(0);
нет не работает
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: как сделать такую ссылку
« Ответ #5 : 04.07.2009, 21:59:12 »
Тогда ставьте воид и дайте ссылку на сайт. Не может не работать.
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #6 : 04.07.2009, 22:04:27 »
Тогда ставьте воид и дайте ссылку на сайт. Не может не работать.
т.е.??
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #8 : 04.07.2009, 23:32:27 »
т.е. ссылку на сайт дайте :)
он на локалке
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: как сделать такую ссылку
« Ответ #9 : 04.07.2009, 23:34:44 »
он на локалке

тяжелее... В общем, если Вы туда вставите то, что я написал выше, то браузер по ссылке не перейдет, но ссылка будет отображаться. Разве не это требовалось?
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #10 : 04.07.2009, 23:40:28 »
тяжелее... В общем, если Вы туда вставите то, что я написал выше, то браузер по ссылке не перейдет, но ссылка будет отображаться. Разве не это требовалось?
« Последнее редактирование: 15.09.2012, 18:54:00 от Artyomii »
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: как сделать такую ссылку
« Ответ #11 : 04.07.2009, 23:48:04 »
А. Сделай хитро. Просто так не сделать. Могу посоветовать сдделать финт ушами через css.
Типа
#active_item {cursor:default}
Суть типа ссылка есть. но елси человек на водит на ссылку он видит курсор, а не ручку с пальчиком
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: как сделать такую ссылку
« Ответ #12 : 04.07.2009, 23:52:42 »
Я не буду писать ни в аську ни на мыло ни ещё куда-то кроме этой темы. Из Вашего описания точно понять что Вам нужно тяжело. К примеру неясно подпункты у Вас изначально открыты или Вы хотите чтобы они разворачивались. И так далее. Если да, то копайте в сторону огромного количества аккордеон-меню.
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #13 : 04.07.2009, 23:53:31 »
А. Сделай хитро. Просто так не сделать. Могу посоветовать сдделать финт ушами через css.
Типа
#active_item {cursor:default}
Суть типа ссылка есть. но елси человек на водит на ссылку он видит курсор, а не ручку с пальчиком
такие понты в css я знаю и у меня их много, просто смысл то чтоб ссылка нажималась для того чтоб подпункты выходили, да и таких ссылок у меня почти целое меню будет
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: как сделать такую ссылку
« Ответ #14 : 05.07.2009, 00:01:06 »
Тогда предлагаю сделать ссылку типа "разделитель". Задать название. Ссылкой не будет, зато выпадающее меню меню будет. И оформишь зная понты css
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #15 : 05.07.2009, 00:02:52 »
Я не буду писать ни в аську ни на мыло ни ещё куда-то кроме этой темы. Из Вашего описания точно понять что Вам нужно тяжело. К примеру неясно подпункты у Вас изначально открыты или Вы хотите чтобы они разворачивались. И так далее. Если да, то копайте в сторону огромного количества аккордеон-меню.
просто наверно не поняли меня попробую объяснить еще раз, вообщем у меня меню там идут ссылки ТОВАР, КОНТАКТЫ  ну и т.д. когда я кликаю на товар у меня появляются подпункты ПИВО, ВОДКА, СИГАРЕТЫ, так вот надо чтоб ссылка ТОВАР ни куда не ссылалась а просто когда я по ней кликал открывались подпункты, теперь дальше идем у меня идет над контентом еще одно меню так вот когда я кликаю на подпункты ПИВО, ВОДКА ИЛИ СИГАРЕТЫ в меню которое над контентом появляются ссылки ОПИСАНИЕ, ФОТОГАЛЕРЕЯ, ПРАЙС-ЛИСТ и уже только после клика на них появляется то самое содержимое окончательное
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #16 : 05.07.2009, 00:06:13 »
Тогда предлагаю сделать ссылку типа "разделитель". Задать название. Ссылкой не будет, зато выпадающее меню меню будет. И оформишь зная понты css
но ведь раделитель он же не ссылка как подпункты будут открываться
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: как сделать такую ссылку
« Ответ #17 : 05.07.2009, 00:15:16 »
но ведь раделитель он же не ссылка как подпункты будут открываться
Ну мля. Как понял ты супергурувеюмастер. И sn не знаешь как это сделать? Глянь тут http://tehnoing.ru/ Наведи на пункт Продукция. И ты поймешь
*

MuraDweb

  • Захожу иногда
  • 267
  • 124 / 1
Re: как сделать такую ссылку
« Ответ #18 : 05.07.2009, 00:18:56 »
просто наверно не поняли меня попробую объяснить еще раз, вообщем у меня меню там идут ссылки ТОВАР, КОНТАКТЫ  ну и т.д. когда я кликаю на товар у меня появляются подпункты ПИВО, ВОДКА, СИГАРЕТЫ, так вот надо чтоб ссылка ТОВАР ни куда не ссылалась а просто когда я по ней кликал открывались подпункты...
ну. расписал понтов :)
тебе меню с эффектом аккордион надо я так понял.
Яндекс.Деньги: 41001423568435
Webmoney: R 377548789269 | Z 421465848009 | E 126339514076 | U 413960261029
-
А, Вы читали ? Правила форума | FAQ J! 1.5 | FAQ J! 1.0
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #19 : 05.07.2009, 00:30:54 »
Ну мля. Как понял ты супергурувеюмастер. И sn не знаешь как это сделать? Глянь тут http://tehnoing.ru/ Наведи на пункт Продукция. И ты поймешь
ха сэр кажись я вкурил твою мысль, точно!!!! спасибо, но так как у меня получается подпункты тоже ссылками их че так же играть css-ом и как тогда будут они выглядеть по активности  т.е. пользователь к примеру находится в меню ТОВАР=> подпункте ВОДКА=> и под меню в пункте ФОТОГАЛЕРЕЯ. хотя так то можно мне кажется! слушай если просто тупо создаль левый раздел с категорией и просто все на выводе в настройках срывать, как ты думаешь? в данный моент у меня пока так, да и кстати насчет моего вопроса и твоего предложения заодно спрошу как это все будет интересно индексироваться и какова карта будет сайта
*

Artyomii

  • Захожу иногда
  • 331
  • 10 / 5
Re: как сделать такую ссылку
« Ответ #20 : 05.07.2009, 00:31:44 »
ну. расписал понтов :)
тебе меню с эффектом аккордион надо я так понял.

не не надо, есть одно sw menu pro
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: как сделать такую ссылку
« Ответ #21 : 05.07.2009, 01:02:30 »
в данный моент у меня пока так, да и кстати насчет моего вопроса и твоего предложения заодно спрошу как это все будет интересно индексироваться и какова карта будет сайта
А вот тут лови от меня предупреждение. Одна тема - один вопрос
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать появление случайных картинок из пяти разных категорий?

Автор Katy93

Ответов: 2
Просмотров: 2788
Последний ответ 03.05.2021, 21:34:20
от sivers
Как сделать бэкап сайта

Автор egorovv

Ответов: 8
Просмотров: 7620
Последний ответ 06.06.2020, 12:09:43
от SeBun
Как сделать отображение третьего и далее уровней меню?

Автор Hloja_Blimm

Ответов: 12
Просмотров: 2152
Последний ответ 24.11.2017, 15:12:04
от Hloja_Blimm
Передача данных в форму при нажатии на ссылку

Автор usmdamir

Ответов: 4
Просмотров: 1637
Последний ответ 26.07.2017, 09:40:22
от usmdamir
Как убрать ссылку на allforjoomla.ru из модуля SimpleForm2?

Автор Loh

Ответов: 3
Просмотров: 3051
Последний ответ 20.06.2017, 11:17:28
от ZyX