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

19th

  • Осваиваюсь на форуме
  • 31
  • 3 / 0
  • бу(це)ски
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #30 : 23.11.2009, 19:52:06 »
Ставил несколько роутеров, в том числе и перечисленные в данной ветке, но у всех проблема в работе с заказами (регистрацией, работой с учетной записью). До конца все косяки победить не смог, поэтому пришлось отказаться от SEF и использовать родные "кривые" адреса. Проблема кривых рук или все остальные вручную всё напильниками правят успешно?

Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #31 : 26.11.2009, 00:38:39 »
На тему ошибки с редиректом на SSL (который присутствует в ссылке "Оформить заказ" в корзине). В текущей версии размещенного тут скрипта router.php происходит переход на корень магазина.

Вот вариант исправления. Прочтите внимательно, там есть и исправленный скрипт и кое-что еще.
http://joomlaplugins.net/forum/9-general/4-ssl-issue-in-sef-router.html?limit=6&start=6#37

P.S. А это теперь модно в case после константы ставить точку с запятой, а не двоеточие?
P.P.S. От себя добавлю пожелание в массив волшебных символов внести апостроф и кавычки.
Код
$special_chars = array('!','@','#','$','%','*','(',')',"'",'"');
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #32 : 26.11.2009, 11:10:33 »
P.S. А это теперь модно в case после константы ставить точку с запятой, а не двоеточие?
Вопрос не ко мне - к французам (законодатели моды) :)
В шапке файл исправил.
(Самое удивительное, что работает)
*

19th

  • Осваиваюсь на форуме
  • 31
  • 3 / 0
  • бу(це)ски
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #33 : 26.11.2009, 20:45:42 »
На тему ошибки с редиректом на SSL (который присутствует в ссылке "Оформить заказ" в корзине). В текущей версии размещенного тут скрипта router.php происходит переход на корень магазина.
Вот вариант исправления. Прочтите внимательно, там есть и исправленный скрипт и кое-что еще.
Внес изменения которые там предлагались, проверял на роутерах из этой ветки и роутере выложенном на сайте, все равно выдает при попытке нажатия "Сделать заказ": "Error 404! /ssl_redirect.html File Not Found!"
*

Vladimir

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #35 : 30.11.2009, 01:03:49 »
Joomla 1.5.15 VirtueMart 1.1.4
адрес auto-tuner.ru.
Там правда не закончено ещё, так что сильно не пинайте.

А Вы какой роутер используете? У Вас ссылки без всей этой лабуды "component/virtuemart/10/2/"!
Не подскажете, как так можно сделать?
*

Vladimir

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #36 : 30.11.2009, 01:24:10 »
beagler

Спасибо за роутер! Но есть проблемка. Под VM 1.1.3 при нажатии "Оформить заказ" перебрасывает на главную страницу. Тут в ветке предлагалось заменить файл ps_session.php, но он у меня и так оригинальный.

В чем еще может быть дело?
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #37 : 30.11.2009, 10:32:39 »
А Вы какой роутер используете? У Вас ссылки без всей этой лабуды "component/virtuemart/10/2/"!
Не подскажете, как так можно сделать?
Чтобы не было лабуды в главном меню в ссылке на компонент vm пропишите алиас, например, "catalog" - это будет вместо лабуды
*

Vladimir

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #38 : 30.11.2009, 13:25:54 »
Чтобы не было лабуды в главном меню в ссылке на компонент vm пропишите алиас, например, "catalog" - это будет вместо лабуды

Спасибо! Вся лабуда, конечно, не исчезла, но сократилась. Вместо "component/virtuemart/" ставится алиас.

Но при нажатии "Оформить заказ" по-прежнему перебрасывает на главную страницу VM.
Это особенность 1.1.3 или моих настроек?
*

Vladimir

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #39 : 30.11.2009, 13:35:05 »
Чтобы не было лабуды в главном меню в ссылке на компонент vm пропишите алиас, например, "catalog" - это будет вместо лабуды

А вот у Autocom от 16.11.2009, 18:35:15 на сайте auto-tuner.ru вообще ничего лишнего нет.
Вот адрес вложенной категории: auto-tuner.ru/dlya-vaz.html
и товара в ней: auto-tuner.ru/dlya-vaz/gamma-gf115t.html

Как так сделать?
*

Vladimir

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #41 : 30.11.2009, 13:46:43 »
использовать sef-компоненты.

Это, вобщем-то, было понятно.

А кто знает, какие именно компоненты нужно использовать?
*

mstr

  • Захожу иногда
  • 62
  • 1 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #43 : 02.12.2009, 04:33:50 »
А второй так же как первый ставится? Ничего шаманить не надо?
Первый работает второй нет.(((
*

7RusWolf

  • Захожу иногда
  • 64
  • 5 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #44 : 04.12.2009, 07:51:45 »
а что скажете про это? бесплатный
http://joomlaplugins.net/virtuemart-sef-router/details/1/hand-shovel.html
*

beagler

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

Foxx13

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #47 : 08.12.2009, 06:11:17 »
Огромное спасибо, Dutch!
У меня все заработало с е-router!
3 дня бился головой о стену ))))
Отлично!
А почему я не могу карму ему поднять?
*

Foxx13

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #48 : 08.12.2009, 06:13:01 »
а... е-router сделал beagler ))))
Дубль два с апдейтом:

Огромное спасибо, beagler!
У меня все заработало с е-router!
3 дня бился головой о стену ))))
Отлично!
А почему я не могу карму им поднять?
*

Foxx13

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #50 : 08.12.2009, 14:26:12 »
"мал ещё" - сообщений мало :)
:-)
Знаете, у меня e-router нормально работает с включенным mod-rewrite и отключенными "Добавить суффикс к URL"

Joomla 1/5/15
VM - 1.1.4

Пока не было никаких ошибок.
Хотя, рекомендуют:
1. включена функция mod_rewrite и расширения (суффиксы) файлов;
2. отключена функция mod_rewrite, а расширение (суффиксы) файлов могут быть включены или отключены.

beagler, скажите, пожалуйста, какие настройки SEF Вы рекомендуете для E-router.

Спасибо!
*

Foxx13

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #52 : 08.12.2009, 14:37:09 »
любые :)
Работает - замечательно.
"И не надо включать!" (С) Жванецкий.

Лады, спасибо!
*

eryomenko

  • Новичок
  • 5
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #53 : 11.12.2009, 20:50:31 »
любые :)
Работает - замечательно.
"И не надо включать!" (С) Жванецкий.

Спасибо за модуль, все заработало, НО!
У меня в названии товара несколько пробелов " ", и ссылка на товар отображается как-то странно, первый пробел не транслируется в "-" вот примеры:
....ducts/details/52/5/telefoni-blackberry/blackberry 8820.html
....ducts/details/44/5/telefoni-blackberry/blackberry%209000-bold.html

Не подскажите как исправить, чтоб менял все пробелы на "-"?
Заранее благодарен.

*

eryomenko

  • Новичок
  • 5
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #54 : 12.12.2009, 23:15:54 »
Уже разобрался.
Проблемы были в таблице при вводе данных.
Роутер работает, все супер )
*

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #55 : 13.12.2009, 18:35:19 »
Цитировать
Роутер ссылок корректно работает с включенными расширениями (суффиксами) файлов и с отключенной функцией mod_rewrite в настройках Joomla. Если отключить функцию суффиксов для файлов и оставить включенный функцию mod_rewrite, будут возникать ошибки 404, это связано с тем, что параметрах URL используется точка (например: shop.browse).

Я незнаю может уже обсуждалось некогда читать но у меня с с включенными расширениями (суффиксами) файлов и с включенной функцией mod_rewrite выдавалась ошибка 404 решилось случайно добавил Options +FollowSymLinks в .htaccess заработало вот как.
*

sensor_a

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #57 : 16.01.2010, 10:17:26 »
Установил.
Получились следующие ссылки: _http://www.site.ru/index.php/catalog/details/18/6/Каталог/товар.html
Был удивлен.
Вопрос: Как такие ссылки (с русскими словами) дружат с индексацией в поисковиках?

Второй момент.
_http://www.site.ru/index.php/catalog/details/18/6/Каталог/товар.html
index.php - каким образом можно убрать, чтоб было:
_http://www.site.ru/catalog/details......

ну что могу сказать по этому поводу, мне кажется что русский лучше не ставить! просто вот я попробовал и у меня в  Google вебмастер на такие ссылки пишет 404 ошибку, потому что оно ихи видит как http://www.moto-ua.net/motoekipirovka/det/92/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%8­0%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/texx-flash-solid.html
« Последнее редактирование: 16.01.2010, 10:27:01 от everestrus »
*

everestrus

  • Захожу иногда
  • 97
  • 3 / 0
  • Moto на территории UA
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #58 : 16.01.2010, 10:40:50 »
никто не встречал роутера что бы было http://sitename/productname_productid.html
видел сейчас много сайтов такое практикуют и довольно такие успешние!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос с 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
Просмотров: 4662
Последний ответ 15.01.2015, 11:50:23
от Schumaker
Русификация VirtueMart. Как ее сделать?

Автор Koriolan

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