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

Cross

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #301 : 10.06.2010, 16:02:36 »
подскажите что не нравится роутеру ?
при открытии категории вылазит
Notice: Undefined offset: 2 in C:\Apache\test6.ru\www\components\com_virtuemart\router.php  on line 58

Notice: Undefined offset: 3 in C:\Apache\test6.ru\www\components\com_virtuemart\router.php on line 59

с остальным вроде всё впорядке
*

Cross

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #303 : 11.06.2010, 09:07:25 »
58 строка $vars['flypage']    = $segments[2];
59 строка $vars['product_id']    = $segments[3];

Joomla 1.5.17 Virt 1.1.4
*

Cross

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #305 : 11.06.2010, 12:54:15 »
вот такая
 
http://test6.ru/ru/component/virtuemart/shop.browse/6.html

всё делал как написано в Замечаниях и Применении
*

Cross

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #307 : 11.06.2010, 14:13:35 »
ну я тоже если чесно её не сформировывал :), ,пробовал несколько разных роутеров, у всех где нить да есть косяк , остановился на sh404SEF и фсё нормально , больше не буду эксперементировать
*

dolfun

  • Захожу иногда
  • 76
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #308 : 14.06.2010, 15:00:21 »
после поиска через mod_virtuemart_searh формируется страница с результатами поиска, где ссылки на товар заканчивается /flypage.tpl.html?keyword="слово поиска" и при переходе по этой ссылке на товар на странице товара перестает работать кнопка "купить". Как это исправить?
*

dolfun

  • Захожу иногда
  • 76
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #309 : 14.06.2010, 15:17:46 »
Проблема в другом оказалась: на странице товара кнопка купить не добавляет товар в корзину, а на странице категории - добавляет.  ?
*

Ikar13

  • Новичок
  • 3
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #311 : 15.06.2010, 05:02:53 »
Добрый день! спасибо за модуль - он работает!
Помогите с такой проблемой:
все работает, но в корзине(на странице http://мой сайт/component/virtuemart/cart) кнопка "Оформить заказ" имеет такую ссылку:
 "http://мой сайт/index.php?page=checkout.index&ssl_redirect=1&option=com_virtuemart&Itemid=1"

естественно нажимаем и продолжение заказа у нас происходит на главной странице (с витриной и другими модулями).

помогите исправить, пожалуйста.
P.s. задача убрать витрину и другие модули из оформления заказа. какой будет урл не принципиально.
топик прочитал, но как исправить не понял. заранее благодарю за помощь
« Последнее редактирование: 15.06.2010, 09:31:36 от Ikar13 »
*

Ikar13

  • Новичок
  • 3
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #313 : 15.06.2010, 16:57:02 »
re: попробуйте в \components\com_virtuemart\themes\default\templates\pages\shop.cart.tpl.php убрать ssl_redirect=1
ничего не дало :(
а как должен выглядеть урл после нажатия "оформить заказ", это там где "Оформить заказ
Уже зарегистрированы? Пожалуйста, войдите "??
урл карзины у меня так например выглядит www.мой сайт/component/virtuemart/cart
*

beagler

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

dolfun

  • Захожу иногда
  • 76
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #315 : 15.06.2010, 21:47:47 »
по моему вопросу все оказалось банально - в файле страницы описания товара опечатка закралась после правки. сейчас все ОК
*

Rudman

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #316 : 18.06.2010, 09:19:24 »
чистите кэш и будет вам счастье ;)

посомтрите как у вас обработчики (плагины) стоят и вызываются - возможно эти страницы из кеша попали когда вы "ковырялись"

PS УРА Я НАШЕЛ РЕШЕИЕ ПРОБЛЕМЫ С sh404SEF! БИНГО! меню категорий работает :)
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #317 : 18.06.2010, 12:22:33 »
возможно, /15 всё и портит. Попопробуйте проверить на локальной копии.
А вот и нет. На локальной версии все тоже самое.
такое чувство что роутер просто не используется. я удалила файл роутера а ничего не поменялось... =( что же делать?
Joomla 1.5
вм 1.1.4
настройки: seo включен rewrite выключен, плагин SEF выключен ещё использую yvtransliterate, попробовала его удалить - ничего не изменилось. может дело ещё в какихто настройках которые я не учла? есть плагин SEF пробовала включать выключать - все тоже самое.
кэш чистила
с другим роутером тоже затворы вместо каталога
« Последнее редактирование: 18.06.2010, 13:30:59 от brankelvilson »

Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #319 : 22.06.2010, 15:51:17 »
так что всё-таки делать с этой проклятой страницей вопроса о цене shop.ask?

Если eщё актуально, пишите мне на ящик davis82@mail.ru, такая же проблема была "БЫЛА" davis82@mail.ru
*

Why14

  • Новичок
  • 3
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #320 : 23.06.2010, 11:49:02 »
Всем привет. Уже глаза болят искать..... Подскажите пожалуйста... Joomla 1.514, VirtualMart1.1.3. проблема состоит при оформлении заказа и регистрации выкидывает в 404 и пишет "Not Found

The requested URL /www./metaldveri.hoffman-david.com/virtuemart was not found on this server."
если есть где то готовая ветка дайте ссылку или разъясните молодому бойцу танкового отряда....))))
Help.Sos.
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #321 : 25.06.2010, 12:12:00 »
С тем разобрались. новая беда: в вм есть такая тема типа прикрепить к товару файл для скачивания. все хорошо, но этот роутер делает так что ничего не скачивается.
http://www.sevkom.ru/15/catalog/details/412/3/ochistnie-soorugeniya/benzomaslootdelitel-tb
http://www.sevkom.ru/15/catalog?file_id=244&product_id=412
такая получается ссылка на скачивание, и она просто выкидывает на глувную страницу каталога. файлов для скачивания предвидистя очень много - не хочется все вписывать руками, но если панацеи нет, то придется =(
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #322 : 25.06.2010, 12:39:36 »
С тем разобрались. новая беда: в вм есть такая тема типа прикрепить к товару файл для скачивания. все хорошо, но этот роутер делает так что ничего не скачивается.
http://www.sevkom.ru/15/catalog/details/412/3/ochistnie-soorugeniya/benzomaslootdelitel-tb
http://www.sevkom.ru/15/catalog?file_id=244&product_id=412
такая получается ссылка на скачивание, и она просто выкидывает на глувную страницу каталога. файлов для скачивания предвидистя очень много - не хочется все вписывать руками, но если панацеи нет, то придется =(
Открывай router.php  и пиши в начале файла заводи еще одну константу:

define('PAGE_GET_FILE','getfile');
далее в блок switch ($page)
добовляем еще один кейс:

      case 'shop.getfile':
         $segments[] =PAGE_GET_FILE;
      break;

ну и наконец в блок switch($firstSegment) добавляй
      case PAGE_GET_FILE:
         $vars['page'] = "shop.getfile";
      break;
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

brankelvilson

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #323 : 25.06.2010, 14:44:57 »
Открывай router.php  и пиши в начале файла заводи еще одну константу:

define('PAGE_GET_FILE','getfile');
далее в блок switch ($page)
добовляем еще один кейс:

      case 'shop.getfile':
         $segments[] =PAGE_GET_FILE;
      break;

ну и наконец в блок switch($firstSegment) добавляй
      case PAGE_GET_FILE:
         $vars['page'] = "shop.getfile";
      break;
ого как оперативно! спасибо, все работает! =) спасибо огромное, а то у нас почти на каждый продукт по скачиваемому сертификату тех соответствия...
*

CRT

  • Новичок
  • 7
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #324 : 29.06.2010, 09:12:01 »
это алиас ссылки на компонент VirtueMart в главном меню
Создал ссылку Главная(catalog) на VirtueMart в главном меню (она же по умолчанию)
Захожу как http://site.ru/ получаю ссылки http://site.ru/component/virtuemart/и_т_д
Пункт меню Главная стоит как выделенный
Нажимаю на него, страница презагружается и получаю ссылки http://site.ru/catalog/и_т_д
А если добавляю пункт Корзина (cart) и нажимаю на нее то ссылки становятся вида http://site.ru/cart/и_т_д
Добавляю пункт Прайс (price) и нажимаю на него и ссылки становятся вида http://site.ru/price/и_т_д
В чем трабл ? Или это лечится только установкой компонента типа sh404SEF ?
Обычный роутер так и будет безобразничать всегда ?
*

CRT

  • Новичок
  • 7
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #326 : 29.06.2010, 23:32:48 »
почитайте внимательно FAQ - http://joomlaforum.ru/index.php/topic,86830.0.html
Прочитал, вроде все на месте, и алиасы у каждого пункта меню, и .htaccess, и все 3 флага в настройках включены (они нормально каждый свою функцию делают). Решения проблемы в топике не нашел :(. Ткните пальцем пожалуйста. Не хочется на Artio или sh404 переходить, тяжелые они.
*

CRT

  • Новичок
  • 7
  • 0 / 0
Re: SEF для VirtueMart (Joomla 1.5)
« Ответ #328 : 30.06.2010, 08:44:34 »
.htaccess стандартный?
Да конечно, только память и время исполнения увеличены (php_value max_execution_time и php_value memory_limit ), а так переименован из htaccess.txt. Joomla 1.5.15, VM 1.1.4 алиасы в меню уникальные, каждый из одного слова, слова не зарезервированные. Флаги в настройках при включении-выключении каждый включают-отключают свою функцию и на решение проблемы не влияют.
PS : Обновил до 1.5.18, игровая ситуация не изменилась.
« Последнее редактирование: 30.06.2010, 09:00:40 от CRT »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор andrey488

Ответов: 4
Просмотров: 4018
Последний ответ 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