Новости 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 Ответов
  • 183081 Просмотров
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #270 : 11.05.2010, 16:50:56 »
А ни у кого такая хрень не вылазила..Когда открываешь "Дополнительные изображения" товара, то когда открывается окно, а в нем вместо галереи весь сайт заново загружен. Тоже надо прописать переменную как и для файлов товара?
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

schel4ok

  • Захожу иногда
  • 219
  • 4 / 1
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #271 : 12.05.2010, 08:57:47 »
тока щас заметил - ошибка с картинками есть, но чуток другая
при нажатии на дополнительные изображения выводит сообщение image not found
вот страница http://www.steklo-group.ru/shop/details/283/razdvignaya-steklyannaya-dver-s-furnituroy-otkritogo-tipa.html
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #273 : 12.05.2010, 10:18:05 »
неа, когда открываю дополнительные у него то в лайтбоксе надпись Image not found.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #274 : 14.05.2010, 14:40:43 »
Друзья, а как вы делаете что бы было:

имя_сайта.рф/catalog/category/...
имя_сайта.рф/shop/category/...

у меня помечу-то этот роутер взял название второй категории товаров вм, где прописать этот shop или catalog?
просмотрела парсер роутера, просмотрела всю эту тему но вопрос остался не решенным.
использую этот роутер всем довольна, только вот хочется видеть catalog вместо zatvory
*

schel4ok

  • Захожу иногда
  • 219
  • 4 / 1
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #276 : 16.05.2010, 21:47:24 »
все картинки открылись
и правда открылись, хотя я ничего не менял
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #277 : 17.05.2010, 23:45:44 »
Добрый день.
Плагин работает отлично,но при выгрузке в Яндекс Маркет возникли проблемы при формировании ссылки на товар, формируется ссылка типа:
Код
http://сайт.com.ua/index.php?option=com_virtuemart&Itemid=71&category_id=7&flypage=flypage.tpl&lang=ru&page=shop.product_details&product_id=18
а в магазине ссылки такого типа:
Код
http://сайт.com.ua/home/category/name.html

При выгрузке формирование урла происходит из кода:
Код
$url="http://$cfg_url/index.php?option=com_virtuemart&Itemid=71&category_id=".$row[$i]['category_id']."&flypage=flypage.tpl&lang=ru&page=shop.product_details&product_id=".$row[$i]['product_id'];

Вопрос: как его заменить что бы ссылки при выгрузке в XML формировались уже правильные?
Спасибо.
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #279 : 18.05.2010, 11:19:04 »
beagler, до этого такой ссылки в главном меню не было. сделали ссылку, сделали к ней алиас catalog, по этой ссылке мы переходим на категории только одного производителя, причем последнего (?), при этом каталог так больше нигде и не появился. есть ещё варианты лечения?
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #281 : 18.05.2010, 23:45:37 »
использовать JRoute
Можете подробнее или намекнуть хотя бы?
Спасибо
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #283 : 19.05.2010, 23:01:47 »
намекаю - учись пользоваться поиском
http://joomlaforum.ru/index.php/topic,46393.msg271546.html#msg271546

Понял,спасибо за намёк))
*

4kict

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #284 : 29.05.2010, 18:56:00 »
Здравствуйте!
Установил E-router.
Ссылки на товар с главной страницы имеют вид
мойсайт.ru/home/details/18/radioupravlyaemiy-vertolet-ss-300.html
А из раздела
мойсайт.ru/home/details/18/5/radioupravlyaemie/radioupravlyaemiy-vertolet-ss-300.html

Как и каким компонентом организовать карту сайта?

Сам уже замучался разбираться, если кто может помочь, готов платить WM.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #285 : 29.05.2010, 20:23:41 »
1.А что в ссылках не устраивает?
В первом варианте сразу на товар, во втором с учетом категории. Без роутера такая же песня.
2. Попробуйте Xmap.
*

4kict

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #286 : 29.05.2010, 20:48:55 »
Цитировать
1.А что в ссылках не устраивает?
В первом варианте сразу на товар, во втором с учетом категории. Без роутера такая же песня.
2. Попробуйте Xmap.
1. хотелось бы иметь одну ссылку на один товар, а не разные.
2. Да, Xmap уже поставил, все отлично работает. Кстати, ссылки на товар в Xmap имеют вид мойсайт.ru/home/details/18/5/radioupravlyaemie/radioupravlyaemiy-vertolet-ss-300.html
*

4kict

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #288 : 29.05.2010, 23:32:37 »
Цитировать
1. ставьте SEF компонент, например sh404SEF
Неужели с E-router задача не решается? Иметь две разные ссылки на один и тот же товар/документ – крайне неразумно и плохо со стороны SEO.
*

terveg

  • Захожу иногда
  • 86
  • 17 / 0
  • ставь "+" руки не отсохнут
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #290 : 30.05.2010, 16:16:52 »
есть проблемы с джумфиш:
при переключении языков не все переводится, к примеру Recently Viewed Pruoducts не работает перевод (частично). Дело в том что изначально я создавал товары на русском языке, затем перевел на английский. Теперь у меня получаються ссылки вида (англ)
http://сайт/en/roses/details/28/6/rozi/arlekino.html
а на русском
http://сайт/ru/roses/details/28/6/rozi/arlekino.html

При переходе на странице флайпедж товара к следующему продукту выдает ошибку 500
500 - JDatabaseMySQL::query: 1054 - Unknown column 'veronika' in 'where clause' SQL=SELECT t1.category_child_id AS lev1, t2.category_child_id as lev2, t3.category_child_id as lev3 FROM jos_vm_category_xref AS t1 LEFT JOIN jos_vm_category_xref AS t2 ON t2.category_child_id = t1.category_parent_id LEFT JOIN jos_vm_category_xref AS t3 ON t3.category_child_id = t2.category_parent_id WHERE t1.category_child_id= veronika

Если пользоваться sef404-используя хак JoomFish в .htaccess то нормально переводит ссылки из англ. на рус. Если пользоваться этим плагином vmSEF http://joomla-support.ru/showthread.php?p=93253#post93253-он тоже на базе рутера работает, тоже возникают ошибки 404, но ссылки выглядят значительно лучше
E-router вобще дает редиректы на главную при попытке просмотра товара из категории.
Доработать бы vmSEF-хороший плагинчик, проверил-практически не нагружает сервер.
*

terveg

  • Захожу иногда
  • 86
  • 17 / 0
  • ставь "+" руки не отсохнут
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #291 : 30.05.2010, 16:27:37 »
ставьте SEF компонент, например sh404SEF
компонент хорошо работает если настроить немного с JoomFish. Я смог добиться ссылок вида (при чем у меня сделано еще меню Joomla на категории виртуя)
...ru/сайт/dostavka-tsvetov-ukraina/rozy/buket.html
...en/сайт/send-flowers-ukraine/roses/bouket.html

при переключении языков все переводит (есть только глюк с изменением шаблона при смене языка незначительный)
Скажите ссылки такого вида получаются разными для одного и тогоже продукта в отличии от Вашего роутера и того что я выше упоминал, это считается дублированием?
*

terveg

  • Захожу иногда
  • 86
  • 17 / 0
  • ставь "+" руки не отсохнут
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #293 : 05.06.2010, 13:55:55 »
нашел решение с переводом Недавно просмотренных продуктов http://www.joomfish.net/forum/viewtopic.php?f=24&t=4156&p=21266#p21266
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #294 : 05.06.2010, 17:28:00 »
Нашел несколько косяков:
1. Ссылки "Восстановить сохранённую корзину" и кнопка "зарегистрироваться" ведут на главную
2. Не работают кнопки "Вид для печати" на странице "Список всех товаров" и на странице просмотра заказа
*

Diiimonn

  • Захожу иногда
  • 234
  • 29 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #295 : 07.06.2010, 11:18:49 »
не знаю, может было обсуждено, лень читать...Появилась такая проблема: некоторые ссылки перебрасывали на главную страничку.
Проблема решилась путем пополнения списка заменяемых символов в массивах $special_chars(строки ~459,483)

а! вот, и еще вопросик к beagler  нельзя ли прикрутить к урл-ам постраничную навигацию? если не ошибаюсь необходимо описать в роутере замену еще вот этого: limit, limitstart и start .Т.е.
сейчас так:
http://site.ru/shop/category/56/zaysi-serie/zaysi.html?limit=5&start=10
а должно быть так:
http://site.ru/shop/category/56/zaysi-serie/zaysi-5-10.html
« Последнее редактирование: 07.06.2010, 12:01:25 от Diiimonn »
Создание расширений для Joomla
Skype: diiimonn
ICQ: 351181332
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #297 : 10.06.2010, 08:48:07 »
Друзья, а как вы делаете что бы было:

имя_сайта.рф/catalog/category/...
имя_сайта.рф/shop/category/...


у меня помечу-то этот роутер взял название второй категории товаров вм, где прописать этот shop или catalog?
просмотрела парсер роутера, просмотрела всю эту тему но вопрос остался не решенным.
использую этот роутер всем довольна, только вот хочется видеть catalog вместо zatvory
это алиас ссылки на компонент VirtueMart в главном меню
beagler, до этого такой ссылки в главном меню не было. сделали ссылку, сделали к ней алиас catalog, по этой ссылке мы переходим на категории только одного производителя, причем последнего (?), при этом каталог так больше нигде и не появился. есть ещё варианты лечения?
не экстрасенс, ссылку давайте
http://www.sevkom.ru/15/catalog
это должен быть каталог на него ссылка из верхнего главного меню, там почему то производитель wilo
http://www.sevkom.ru/15/zatvory/products?manufacturer_id=1
слева находятся производители, но если щелкнуть на любого то вместо каталог или шоп в адресной строке оказываются затворы
http://www.sevkom.ru/15/klapany/category/11/megflantsevie-zatvori/zatvori
справа если переместиться куда-то по продукции то ссылка тоже не внятная.

хотелось бы хотя бы понять в чем причина, что надо настроить, а то мы уже и так и сяк...
« Последнее редактирование: 10.06.2010, 09:24:36 от brankelvilson »
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #299 : 10.06.2010, 11:18:51 »
то что после /15 это исправленная версия свежая, когда она будет доделана она будет лежать в корне, открываться по sevkom.ru
т.е. физически в корне лежит Joomla 1.0 и папка 15 в которой ещё одна свежая версия сайта на Joomla 1,5.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор andrey488

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

Автор Tell

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

Автор inka

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

Автор smogrom

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

Автор Koriolan

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