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

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
JoomShopping и sh404SEF
« : 16.03.2012, 14:15:53 »
Скажите, есть ли плагин для sh404SEF под JoomShopping?
Когда включаю его, начинаются глюки
Пункт меню назначен на все категории, ссылка на него некрасивая "category/?label_id=&manufacturer_id=&page=&price_from=&price_to=&vendor_id="
Когда на этот пункт щёлкаешь, подсвеченным остаётся пункт "главная", breadcrumbs тоже  показывает, что мы на главной, хотя категории отображены.
То есть по сути мы остаёмся на главной, но показываются категории. Также получается, когда в категорию входим.
Только когда открываем карточку товара, подсвечивается пункт меню "магазин", breadcrumbs показывает "Home-Товар4", то есть промежуточные пункты "магазин-название_категории" выпадают.
Как победить?

PS. Когда sh404SEF отключаю, то всё ок.
*

nevigen

  • Легенда
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: JoomShopping и sh404SEF
« Ответ #1 : 17.03.2012, 01:42:03 »
Если Вы в Ж2.5 работаете то проще использовать свтроенный СЕФ.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
Re: JoomShopping и sh404SEF
« Ответ #2 : 17.03.2012, 03:25:51 »
Да, 2,5
Стоит sh404. Но в его настройках отключено использование оного для джумшоппинга. соответственно по идее для данного компонента функцию SEF должен перехватить встроенный? но не перехватывает - ссылки корявые. или я чего-то не понимаю? Или встроенный в принципе отключается, когда sh404 активен?
*

aorr

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: JoomShopping и sh404SEF
« Ответ #3 : 06.10.2012, 02:20:10 »
Пункт меню назначен на все категории, ссылка на него некрасивая "category/?label_id=&manufacturer_id=&page=&price_from=&price_to=&vendor_id="

У кого-то получилось решить эту проблему?
Нужно править роутер.пхп?
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: JoomShopping и sh404SEF
« Ответ #4 : 10.10.2012, 17:43:49 »
После установки 404 сделал в настройках -Конфигурация-По компоненту(вкладка)-для J Sh выбрал *Использовать роутер Joomla* после чего ссылки стали типа http://......ua/magazin/g-shock/casio-gw-3000bd
больше ничего не правил.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: JoomShopping и sh404SEF
« Ответ #5 : 29.10.2012, 08:08:16 »
У кого-то получилось решить эту проблему?

В AceSEF это решается опцией "Use non-SEF variables -->Нет ". Что то подобное было и в sh404SEF.
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: JoomShopping и sh404SEF
« Ответ #6 : 31.10.2012, 14:29:54 »
Если Вы в Ж2.5 работаете то проще использовать свтроенный СЕФ.
Если бы встроенный SEF еще решал проблему дублей, от которой Joomla не может избавиться как от проклятья.
*

Дмитрий_76

  • Захожу иногда
  • 137
  • 24 / 0
Re: JoomShopping и sh404SEF
« Ответ #7 : 04.10.2013, 11:32:26 »
Ну и как, удалось решить проблему? Та же самая история: нужен и JoomShopping, и SEF, чтобы ссылки клеить.
Но то, что делает сейчас SEF из ссылок джумшоппинга, это ни в какие ворота, конечно...
*

St@lker

  • Захожу иногда
  • 80
  • 0 / 0
Re: JoomShopping и sh404SEF
« Ответ #8 : 04.11.2013, 12:10:42 »
Такая же ошибка. sh404SEF создает ссылки для всего сайта (был перенесен с J1.5 - не могу удалить его потому что ссылки изменяться), и даже если в компоненте отключаешь для  JoomShopping генерацию URL и принудительно указываешь что должен использоваться router.php от Joomls 2.5 - формируются кривые ссылки.

Ссылки формируються следующие: "/test2/classic/kapry-tri". То есть без .html. Если отключить sh404SEF то Joomla 2.5 генерит красивые ссылочки.

Хотелось бы так же уточнить у общества, на общую категорию которая All для JoomShopping какой должен быть URL? У меня он: index.php?option=com_jshopping&controller=category ... Может быть это Неправильно?
« Последнее редактирование: 04.11.2013, 13:38:01 от St@lker »
*

eby1

  • Новичок
  • 7
  • 1 / 0
Re: JoomShopping и sh404SEF
« Ответ #9 : 11.06.2014, 22:38:07 »
подскажите знающие люди. установлена Joomla 3 и joomshoping 4...включено SEF...если перейти к материалу магазина из меню->категория->товар.... то ссылка получается вида /ksenon/komplekty-ksenona/product/view/5/1
но если переходить на товар через модуль карусель например или другие модули..то ссылка отображается /component/jshopping/product/view/5/1?Itemid=0

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

sh404SEF + OSMap Free

Автор xlenivecx

Ответов: 5
Просмотров: 3459
Последний ответ 14.12.2019, 22:34:33
от draff
Теги на страницах навигации sh404SEF

Автор alexey711

Ответов: 2
Просмотров: 3236
Последний ответ 25.06.2019, 15:02:55
от alexey711
Как выключить отображение кода модуля на странице 404 работающей через sh404SEF?

Автор Dim

Ответов: 1
Просмотров: 3550
Последний ответ 05.11.2018, 22:56:47
от Dim
Убрать слэши sh404SEF

Автор romagromov

Ответов: 1
Просмотров: 3769
Последний ответ 16.06.2018, 12:03:05
от romagromov
Управление 404 ссылками в sh404SEF

Автор Afman

Ответов: 0
Просмотров: 3704
Последний ответ 09.06.2018, 20:15:30
от Afman