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

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Всем привет, состав Joomla 2.5.19 VirtueMart 2.026 никак не соображу как выделить пункт меню где сейчас находится пользователь цветом, модуль меню формирует VirtueMart,
Спойлер
[свернуть]


*

alex38ann

  • Захожу иногда
  • 204
  • 7 / 0
  • www.sn38.ru
Код
.menu li.active a {свои стили для него}
*

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Это пробовал в первую очередь, не помогло, надо как то присвоить класс current... но вот как ?
*

Efanych

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

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Неправильно я выразился, достаточно active, но как его присвоить активнму пункту? скриптом каким то ?
*

Efanych

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

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Автоматически не присваивается((  Модуль стандартный VirtueMart вывод категорий товаров, кэш отключен
*

Efanych

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

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Спойлер
[свернуть]
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Попробуйте так

Спойлер
[свернуть]
Создание сайтов, шаблонов, помощь в решении проблем.
*

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
выделились все пункты



такие стили задал



код HTML, Наверное класс active надо присваивать ссылке, как то надо сравнить текущую ссылку и ссылку в пункте меню...



пробовал еще вот так. но тож ничего не вышло... мож что Неправильно делал?((
Спойлер
[свернуть]
« Последнее редактирование: 11.05.2014, 03:12:34 от ghostnetwork »
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
мля ппц! так до сих пор и не сделали чтоли?
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
мля ппц! так до сих пор и не сделали чтоли?
По делу есть что подсказать?
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
а Ефаныч что советовал - вы попробовали? или пока теория одна?))))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Efanych

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

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
а Ефаныч что советовал - вы попробовали? или пока теория одна?))))
попробовал и отписался по результатам (см.пост выше)
li.active a {}
и так тоже пробовал, но выделяются все вложенные пункты меню, как на скрине я показал в предыдущем посте.
Как присвоить класс именно ссылке?
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
http://likbezz.ru/publ/scripts/how_can_i_make_an_active_link_javascript_css/29-1-0-53

а вообще имхо - поганый этот модуль от VirtueMart! это он должен сам делать!! мож галку там какую не поставили?
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

ghostnetwork

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
фууух....получилось)) :D
тут решение

http://likbezz.ru/publ/scripts/how_can_i_make_an_active_link_javascript_css/29-1-0-53

Спойлер
[свернуть]
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
фууух....получилось)) :D
тут решение

http://likbezz.ru/publ/scripts/how_can_i_make_an_active_link_javascript_css/29-1-0-53

Спойлер
[свернуть]
фухх - не фухх, а я бы 100 раз подумал о поганости VirtueMart!
вы сами логикой поработайте - вам надо всего-навсего выделить манюсенький пункт - ОПЛЯ, добавляем скрипт.
еще что-то надо приукрасить - опять ОПЛЯ?)))
тут уже палка о двух концах - вроде бы для клиента делаете удобнее, а с другой стороны, пока все скрипты загрузятся, не убежит ли клиент к соседям?)))) там у VirtueMart и своих скриптов до кучи.
мля, какой этот вирт беспомощный, еще раз убедился, спс за инфу!!)))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
вы сами логикой поработайте - вам надо всего-навсего выделить манюсенький пункт - ОПЛЯ, добавляем скрипт.
Было бы желание, а скрипты можно куда попало насовать, так что вирт тут собственно не причём.
Как-то делал что-то на VirtueMart, ну, отвращения по крайней мере не было...
А сейчас проверить и негде...

Ссылке класс, поидее, так будет присваиваться

Спойлер
[свернуть]
Создание сайтов, шаблонов, помощь в решении проблем.
*

ustmm

  • Захожу иногда
  • 53
  • 0 / 2
фууух....получилось)) :D
тут решение

http://likbezz.ru/publ/scripts/how_can_i_make_an_active_link_javascript_css/29-1-0-53

Спойлер
[свернуть]

А можете показать полный скрипт, что получилось? Я имею ввиду, вместо msgText что подставляли?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разобраться с цветом ссылок

Автор annetkas

Ответов: 2
Просмотров: 2673
Последний ответ 27.01.2022, 13:26:44
от annetkas
Кликабельность псевдоэлемента в пункте меню

Автор vasilii.pupkov

Ответов: 4
Просмотров: 3223
Последний ответ 29.12.2021, 23:15:38
от v42bis
Выпадающее меню

Автор DrShepard

Ответов: 10
Просмотров: 2896
Последний ответ 20.10.2021, 12:36:16
от DrShepard
Выделить ссылку, которая ссылаеться на текущую страницу

Автор web1

Ответов: 4
Просмотров: 1211
Последний ответ 15.02.2021, 13:24:50
от beliyadm
Как закруглить края выпадающего меню?

Автор coliandra

Ответов: 1
Просмотров: 1400
Последний ответ 11.12.2020, 21:15:57
от effrit