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

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #360 : 18.09.2010, 22:15:33 »
72

могу воткнуть твой роутер и включить режим отладчика чтоб ты мог всё увидеть
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #362 : 19.09.2010, 00:16:15 »
Переписал router beagler'а.
Теперь на формирование ВСЕХ ссылок на категории производится всего один запрос. Плюс если она фильтруется по производителю то плюс еще один запрос. Ко всему прочему теперь нет ограничения на 3 уровня вложенности.
К примеру имеем модуль категорий с 72 категориями. оригинал сделает 144 запросов. модифицированный сделает 1 запрос. Оригинал не обрабатывает производителя, модфифицированный обрабатывает, причем делает всего один запрос за всю работу роутера.

ща работаю над тем чтобы сократить количество запросов при формировании ссылки на карточку товара.
Так же думаю включить в него все правки из этой темы.а еще пива хочется ))
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #363 : 19.09.2010, 09:50:15 »
Ну Даник, ну хорош! Ну разве не талант :)

Надо парню пива купить!! Народ!! *DRINK*

Дак я давно тебе говорю - выложи свой webmoney кошель для сборов на пиво  ;D Думаю хоть на бутылочку каждый тее отвалит  ;D
« Последнее редактирование: 19.09.2010, 10:41:10 от mrhuge »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #365 : 19.09.2010, 10:53:36 »
Дак я давно тебе говорю - выложи свой webmoney кошель для сборов на пиво  ;D Думаю хоть на бутылочку каждый тее отвалит  ;D
Ну мой-то кошель давно в профиле - за роутер ничего не капает :)
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #366 : 19.09.2010, 10:55:08 »
Может в кошелёк E-fusion капает? :)

И кстати в профиль мало кто лазит - лучше в подпись или в первый пост топика.
*

feNDer2k5

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #369 : 20.09.2010, 23:10:37 »
Вот нарыл решение с постраничной навигацией. Вроде с e-router работает...
Меняем файло shop.browse.php (/administrator/components/com_virtuemart/html/shop.browse.php)

[вложение удалено Администратором]
« Последнее редактирование: 22.09.2010, 23:10:32 от feNDer2k5 »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #370 : 21.09.2010, 11:28:47 »
выложил свои труды по роутеру: http://joomlaforum.ru/index.php/topic,130264.msg712839.html#msg712839
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

AnArhist

  • Захожу иногда
  • 51
  • 0 / 1
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #371 : 14.10.2010, 02:23:42 »
Я пробовал этот роутер всё работает прекрасно, но почему бы не использовать профессиональный sh404SEF 1.5.2 RC, его я тоже ставил всё работает офигенно скачать его можно тут http://www.yagnenok.com/sh404sef-ili-kak-ya-tantseval-s-bubnom-chast-1.html, тут всё расписано по настройкам.

Теперь я хочу ответа на вопрос почему его не используете?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #372 : 14.10.2010, 02:56:11 »
Теперь я хочу ответа на вопрос почему его не используете?
Нагрузка на сервер, иногда возникают глюки.... А так конечно, хорошее решение.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

nicotinoff

  • Новичок
  • 9
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #373 : 15.10.2010, 15:02:34 »
супер! тепреь бы еще разобраться как title менять на товарах и категориях)))
спасибо автору огромнейшее!! :D *DRINK*
*

feNDer2k5

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #374 : 16.10.2010, 03:48:56 »
супер! тепреь бы еще разобраться как title менять на товарах и категориях)))
спасибо автору огромнейшее!! :D *DRINK*

Вот хак для этих целей. Сам правда не ставил. Отпишитесь если что...
http://forum.virtuemart.net/index.php?topic=65697.0
*

SBARTACO

  • Новичок
  • 7
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #375 : 14.11.2010, 20:19:56 »
Поставил, все равно не работает:(
Пошагово можете объяснить как поставить роутер?

Что я сделал:
1. Распаковать архив; (зделал)
2. Залить файл router.php в папку components/com_virtuemart/; (зделал)
3. Включить и настроить SEF в конфигурации Joomla согласно замечаний
   (в плагинах Система - SEF включена, нет параметров для этого элемента)
Что делать с этим?
1. включена функция mod_rewrite и расширения (суффиксы) файлов;
2. отключена функция mod_rewrite, а расширение (суффиксы) файлов могут быть включены или отключены.
*

No War

  • Новичок
  • 4
  • 1 / 0
VirtueMart 1.5 beta1a
« Ответ #376 : 17.11.2010, 03:23:30 »
Не могу не поделится.
Новая! Пока еще тестовая версия virtuemart1.5-beta1a, а в ней есть свой роутер
http://dev.virtuemart.net/redmine/projects/virtuemart/files
Примеры ссылок
Ссылка на категорию: http://test3.ru/shop/2/power-tools.html
Ссылка на товар: http://test3.ru/shop/circular-saw.html (наверно потом еще id добавят)

А еще там есть мета-теги для товаров и категорий. Круть! :)
*

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #378 : 18.11.2010, 10:35:35 »
Дрбрый день!
Подскажите как сделать чтоб в ссылке были русские символы,а не русские слова латинскими буквами?
Заранее благодарен за участие!
« Последнее редактирование: 18.11.2010, 11:03:49 от savenko123 »
*

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #380 : 18.11.2010, 11:12:18 »
Приогромнейше спасиба!
« Последнее редактирование: 18.11.2010, 11:29:04 от savenko123 »
*

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #381 : 18.11.2010, 11:53:07 »
Еще маленький вопрос ,как из ссылки убрать index.php/home/
*

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #383 : 18.11.2010, 13:57:45 »
index.php включение модуля rewrite() убрало,а как убрать /home/category/
Хотя в начале писали, что с модулем rewrite,router.php не работает!
« Последнее редактирование: 18.11.2010, 14:01:35 от savenko123 »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #384 : 18.11.2010, 14:12:43 »
Хотя в начале писали, что с модулем rewrite,router.php не работает!
Где писали? Роутера никоим образом это не касается.

как убрать /home/category/

home - это алиас пункта меню, который ведет на VirtueMart, можете прописать другое.
category  - это необходимый для роутера сегмент ссылки.

Не устраивает - ставьте чпу компонент, ссылки станут красивые, но возникнет куча других проблем...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

MaRt

  • Захожу иногда
  • 356
  • 20 / 2
  • SEO master
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #385 : 28.11.2010, 00:15:46 »
вопрос: поставил роутер, все работает, но при оформлении заказа нажимаю кнопку, перекидывает на корень магазина и ссылка в адресной строке: /index.php?&redirected=1&option=com_virtuemart&Itemid=135

что делать?
Тра та та
*

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #386 : 29.11.2010, 17:24:57 »
После установки router.php ,Googel вооще перестал индексировать,а Яндекс добавляет только ссылки категорий типа http://www.?.com.ua/home.html?page=shop.browse&category_id=34 и не хочет с товарами.
Если не затруднит ,подскажите!
*

beagler

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

savenko123

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #388 : 29.11.2010, 18:09:12 »
Небыл!
У меня стоял 404sef, очень тормозал,и проиндексировано было в Google только 2000 стр,а в Яндексе только 2-е.
У меня вопрос,че поискавики видят ссылки не http://www.?.com.ua/home/category/34/%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.html,
а http://www.?.com.ua/home.html?page=shop.browse&category_id=34
Может если включить транслинк тогда начнут индексировать?
« Последнее редактирование: 29.11.2010, 19:05:18 от savenko123 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор andrey488

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

Автор Tell

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

Автор inka

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

Автор smogrom

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

Автор Koriolan

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