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

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #60 : 16.01.2010, 11:07:55 »
можно сделать, но тогда теряем категорию
ну в принципе да но сделать это только для product details, просто когда делать с категориями и подкатегориями то получаеться сильно длинная линка!
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #61 : 16.01.2010, 11:12:35 »
Повторяю - тогда у Вас не будет "хлебных крошек". Если такое положение устраивает (мало товаров и категорий) - могу сделать.
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #62 : 16.01.2010, 12:01:43 »
ну к примеру http://moto-ua.net/motoekipirovka/det/17/15/motoshlemi/integralnie-motoshlemi/hjc-cs-12n-lotus.html
вот ссылка все равно если захотеть зайти по ссылке http://moto-ua.net/motoekipirovka/det/17/15/motoshlemi/integralnie-motoshlemi/ что бы попасть в категорию интегральные шлемы все равно попадаеш в сам шлемо потому что стоит det/17/15
да и для навиграции есть боковое меню!
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #64 : 17.01.2010, 11:30:03 »
А можно поинтересоваться, что бы русские буквы пропали, нужно поменять название категорий в магазине с рус на анг?
Или роутер сам это делает?
http://.ru/index.php/%D0%96%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B5-Uggs/UGG-Australia-Women-s-Bailey-Button/flypage.tpl.html а то у меня щас такой вот вид
Смотрю....
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #65 : 17.01.2010, 12:48:01 »
надо поставить роутер что бы был с транслитом
*

Serik555

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #66 : 17.01.2010, 14:09:22 »
Всем привет!
Использую e-router с транслитерацией, все работает замечатьльно, но сегодня решил включить дебаг и что я вижу.
без роутера количетво запросов к БД 59, с включенным роутером - 167. Это только на главной странице. А если на странице, где генерируется прайс лист или по ссылке "список всех товаров", то кол-во запросов зашкаливает за 500. Вот и думай теперь, что лучше - нагрузка на БД и ЧПУ или без ЧПУ зато и без такой нагрузки. Можно ли как-то уменьшить количетво запросов при использовании роутера?
« Последнее редактирование: 17.01.2010, 14:53:01 от Serik555 »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #67 : 18.01.2010, 10:59:37 »
Естественно- роутер запрашивает имена товаров и категорий из базы для каждой ссылки на товар или категорию.
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #68 : 20.01.2010, 00:00:13 »
поставил уже роутер с транслитом но прикол получается  Google видет дублирущие ссылки
потому что роутер мутит и те и те ссылки , то есть есть ссылка с рускими и есть на транслите

http://www.moto-ua.net/motoekipirovka/det/95/15/%D0%9C%D0%BE%D1%82%D0%BE%D1%88%D0%BB%D0%B5%D0%BC%D1%8B/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D1%82%D0%BE%D1%88%D0%BB%D0%B5%D0%BC%D1%8B/hjc-fg-15-etau.html

http://www.moto-ua.net/motoekipirovka/det/95/15/motoshlemi/integralnie-motoshlemi/hjc-fg-15-etau.html
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #70 : 20.01.2010, 10:34:23 »
а может ссылка с русским УЖЕ была в Google?
ну если бы была, то оно бы не зашло по этому адресу, а выкинуло ошибку! так же?
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #71 : 20.01.2010, 10:40:42 »
Зайти-то можно - и это вопрос не к роутеру. Задача роутера - просто расшифровать ссылку. Тем более что для расшифровки используется только /motoekipirovka/det/95/15/
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #72 : 20.01.2010, 10:43:02 »
ну дело то в том что я перед этим использовал разные роутеры, то ссылки от старого переставали работать!
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/

Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #74 : 20.01.2010, 18:22:42 »
Добрый день.
А не подскажете как убрать component/virtuemart из модуля меню VirtueMart.
Извините если глупый вопрос задал
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #76 : 21.01.2010, 10:51:27 »
вот этот
Beagler - роутер от E-FusionSoft Technologies
добавил транслитерацию.
*

schel4ok

  • Захожу иногда
  • 219
  • 4 / 1
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #78 : 21.01.2010, 23:10:42 »
я скопировал роутер к себе на сайт и ЧПУ вроде заработало, но не совсем
если перемещаться по категориям виртуемарта внутри основного блока компонента, то ссылки выводятся правильные
http://stendart.net/shop/category/49/ручки-дверные/кнобы.html   и т.п.

но при этом все ссылки в модуле rokvirtuemartcategories так и остались обычными
http://stendart.net/index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10

а при нахождении на любой странице магазина все ссылки в модуле rokvirtuemartcategories имеют такой вид

http://stendart.net/shop/category/id открытого раздела/название раздела/index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10

ну а эта часть уже переменная index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #79 : 21.01.2010, 23:23:27 »
а работу в модулях никто и не обещал - это роутер компонента.
Возможно в модуле ссылки выводятся без JROUTE
*

kabban

  • Захожу иногда
  • 73
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #80 : 23.01.2010, 23:31:15 »
я скопировал роутер к себе на сайт и ЧПУ вроде заработало, но не совсем
если перемещаться по категориям виртуемарта внутри основного блока компонента, то ссылки выводятся правильные
http://stendart.net/shop/category/49/ручки-дверные/кнобы.html   и т.п.

но при этом все ссылки в модуле rokvirtuemartcategories так и остались обычными
http://stendart.net/index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10

а при нахождении на любой странице магазина все ссылки в модуле rokvirtuemartcategories имеют такой вид

http://stendart.net/shop/category/id открытого раздела/название раздела/index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10

ну а эта часть уже переменная index.php?option=com_virtuemart&page=shop.browse&category_id=40&Itemid=53&TreeId=10
У меня такаяже проблема. Не кто не знает что с этим делать?
*

AlexLSL

  • Новичок
  • 8
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #81 : 24.01.2010, 18:16:42 »
J1.5.15
VM 1.1.4
роутер от E-FusionSoft Technologies
Денвер-3 2008-01-13   
Выдает ошибку при открытии любой страницы
Код
Fatal error: Call to undefined function mb_strtolower() in Z:\home\192.178.0.3\www\components\com_virtuemart\router.php on line 531
*

AlexLSL

  • Новичок
  • 8
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #83 : 24.01.2010, 21:31:56 »
php 5.2.4.
Заменил ошибка пропала, но теперь не могу зайти ни по одной ссылке, выкидывает на главную.
То же самое и с роутером от everestrus.
*

ivit

  • Осваиваюсь на форуме
  • 10
  • 1 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #85 : 27.01.2010, 16:50:47 »
прочитал весь форум, но так и не нашел ответа на вопрос о  проблеме с оформлением заказа при включенном ЧПУ и манипуляциями с содержимом крзины (Object not found! Error 404). Может я что-то пропустил или эта проблема не решена?
*

ivit

  • Осваиваюсь на форуме
  • 10
  • 1 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #86 : 29.01.2010, 12:29:41 »
Отвечу сам себе - похоже, что сделать полную поддержку в VirtueMart встроенного в Joomla SEF нельзя, рекомендуют использовать  sh404SEF или SmartSEF .
По-крайней мере так об этом сообщается здесь: http://forum.virtuemart.net/index.php?topic=39006.0
*

zveroff

  • Новичок
  • 6
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #87 : 03.02.2010, 12:04:19 »
поставил этот компонент, все работает, только проблемка возникла, не могу исправить, помогите - http://joomlaforum.ru/index.php/topic,99426.0.html
*

iCECreamty

  • Новичок
  • 9
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #88 : 05.02.2010, 00:09:31 »
Приветствую!
Ребят долго мучался вопросом - какой все таки из предложенных роутеров лучше.
В своих странствиях по нету нашел всего 4 разновидности...
1. E-Fusion router
2. С украинского сайта с шапки ветки форума - joomla.ua.org
3. C шапки ветки форума  - jooomlaplugins
4. Нашел на французском сайте- очень мне понравился но....не смог реализовать поддержку транслитерации и с моим меню ( обьясню позже)

И так...уважаемые знатоки - на Ваше внимание выношу новый роутер (точнее малость переделаный) от француза Electrocity
У него стоит такой же на сайте electrocity.fr
У меня маленькая просьба - Вы не могли бы качественно сделать транслитерацию в нем и получается отличный роутер готов...=)))
А моя проблема с меню в том что JSCook Type - Menu - пропадает при включенном роутере стрелка указатель и все!
p.S. Не претендую на и уж более не предлагаю сделать этот роутер основным, просто хотел поделиться с Вами!

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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #89 : 07.02.2010, 19:25:00 »
Прочел тему, проштудировал интернет и остановился сегодня на sh404SEF версия по-моему 1.3.5, поставился без проблем, реализовал транслитерацию с русского, и самое главное работает и оформление заказа и переходы на следующий предыдущий товар, в общем нареканий нет. Там сразу при установке ставятся автоматом плагины и на вирту и на многие другие распространенные компоненты (в настройках под каждый компонент можно создать отдельные настройки).

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

Перенос с 1.5 на 3.5 + VirtueMart

Автор andrey488

Ответов: 4
Просмотров: 4014
Последний ответ 07.03.2017, 01:19:33
от SeBun
Проблема с установкой VirtueMart 1.1.4

Автор Tell

Ответов: 10
Просмотров: 8431
Последний ответ 02.01.2017, 17:28:01
от pomogu_chem_smogu
Проблемы с установкой VirtueMart

Автор inka

Ответов: 14
Просмотров: 9185
Последний ответ 03.09.2015, 01:44:49
от Amigos
mod VirtueMart latestprod способствовал появлению белого экрана

Автор smogrom

Ответов: 21
Просмотров: 4663
Последний ответ 15.01.2015, 11:50:23
от Schumaker
Русификация VirtueMart. Как ее сделать?

Автор Koriolan

Ответов: 52
Просмотров: 56482
Последний ответ 05.11.2014, 15:37:43
от Jiggy