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

urodoff

  • Захожу иногда
  • 71
  • 18 / 0
В настройках включил функцию контролировать кол-во товара на складе, в шаблоне настроил отображение что есть в наличии чего нет.
Появилась кнопка "Уведомить меня" при нажатии на которую просят написать е-маил для связи.

Вопрос в том как сделать так чтобы при нажатии на кнопку "сообщить мне" эффект был такой же как и от кнопки "Купить", для того что-бы пользователь мог заказать отсутствующий товар. ВМ 1.1.3
*

urodoff

  • Захожу иногда
  • 71
  • 18 / 0
это понятно но вот тогда будет кнопка купить а хотелось бы чтобы было 2 кнопки на товар который есть в наличии купить а на товар которого нет в наличии заказать.
*

drakut

  • Новичок
  • 4
  • 0 / 0
Там есть заглушка "Спросить про данный товар" или что-то в этом роде, в ланг-файле переведи эту фразу как "заказать отсутствующий товар", и поставь заглушку "ask_seller" кажется так она пишется.
*

urodoff

  • Захожу иногда
  • 71
  • 18 / 0
и в чём будет логическая разница между этими двумя кнопками, кроме слова "купить" и "заказать"?
ты прав разницы никакой, но визуально и логически разница есть.

Там есть заглушка "Спросить про данный товар" или что-то в этом роде, в ланг-файле переведи эту фразу как "заказать отсутствующий товар", и поставь заглушку "ask_seller" кажется так она пишется.

интересный вариант решения, но мне нужно при нажатии на кнопку товар добавлялся в корзину и оформлялся заказ.
*

urodoff

  • Захожу иногда
  • 71
  • 18 / 0
ну тогда отключить проверку остатка и просто менять слова на кнопке, взависимости от наличия.
не подскажешь как это сделать... кнопки графические... без текста...
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
не подскажешь как это сделать... кнопки графические... без текста...

Да мне тоже интересно
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Там есть заглушка "Спросить про данный товар" или что-то в этом роде, в ланг-файле переведи эту фразу как "заказать отсутствующий товар", и поставь заглушку "ask_seller" кажется так она пишется.
Вот эта идея кажется жизнеспособной, только при условии, если выводить эту кнопку только для отсутствующих товаров

Или я чего то не понимаю. Получается эта кнопка, если мы в настройках зададим её отображение, будет выходить для всех товаров, кот есть и кот нет)
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Задать вопрос по товару есть везде, она не привязана к наличию товара или его отсутствия. Самый верный способ действительно делать условие остаток <0 такая то кнопка, >0 такая то.
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Задать вопрос по товару есть везде, она не привязана к наличию товара или его отсутствия. Самый верный способ действительно делать условие остаток <0 такая то кнопка, >0 такая то.
А как бы вот это поподробнее?? Как раз бьюсь над подобной проблемой. Нужно, чтобы показывались все товары (но не считалось количество на складе), а у товаров с нулевым количеством появлялась бы кнопка "уведомить меня)".
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
а я просто картинку выставляю к товару , типа-"товар распродан, но вы можете сделать предзаказ" - и все :)
при этом остаток не проверяется, покупка как обычно оформляется.
*

miros777

  • Новичок
  • 3
  • 0 / 0
Тоже интересует этот вопрос. Помогите кто знает. Хочу сделать как вот тут http://rozetka.com.ua/canon_digital_ixus_300_hs_silver/p118360/ Товар которого нет все равно показывается, но кнопки купить нету.
*

dreamod

  • Захожу иногда
  • 82
  • 2 / 0
Тоже интересует этот вопрос. Помогите кто знает. Хочу сделать как вот тут http://rozetka.com.ua/canon_digital_ixus_300_hs_silver/p118360/ Товар которого нет все равно показывается, но кнопки купить нету.
Как вариант
Код
	<?php if ($product_store>0) { ?>
        <!--Тут собственно кнопка купить-->
    <?php }; ?>
<?php if ($product_store<=0) { ?>
    <!--Тут то что выводится когда товара нет на складе-->
        <?php }; ?>
пока новичок, но тут http://meandmama.ru/kosmetika/pt-124672 работает
*

Damingaz

  • Новичок
  • 3
  • 0 / 0
в шаблоне настроил отображение что есть в наличии чего нет.
Можно по подробнее как вы реализовали это в шаблоне? Ни как не могу найти решение
*

Damingaz

  • Новичок
  • 3
  • 0 / 0
Нашел такое решение. В настройках установил галочку "Проверять наличие на складе". После чего на товарах которых нет в наличии вместо "Купить" появилось "Уведомлять меня". Затем в russian.php administrator\components\com_virtuemart\languages\common, вместо "Уведомлять меня" написал "ЗАКАЗАТЬ".
*

Vladmr163

  • Осваиваюсь на форуме
  • 33
  • 1 / 0
Как вариант
Код
	<?php if ($product_store>0) { ?>
        <!--Тут собственно кнопка купить-->
    <?php }; ?>
<?php if ($product_store<=0) { ?>
    <!--Тут то что выводится когда товара нет на складе-->
        <?php }; ?>
пока новичок, но тут http://meandmama.ru/kosmetika/pt-124672 работает
А в каком файле это делать?
В ВМ2 это возможно?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Товары которых нет в наличии - не отображать в категориях и в поиске по сайту, но отображать при пер

Автор BoBaN

Ответов: 14
Просмотров: 6598
Последний ответ 16.07.2021, 09:53:59
от Igoritaly
Скидка группы на товар, имеющий специальную цену для этой группы

Автор Disdain

Ответов: 1
Просмотров: 3342
Последний ответ 28.01.2016, 13:32:12
от Disdain
несколько продавцов на один и тот же товар.

Автор ED_

Ответов: 11
Просмотров: 4689
Последний ответ 13.12.2015, 15:22:20
от qims
Как скрыть опубликованный товар?

Автор Vozd

Ответов: 10
Просмотров: 1807
Последний ответ 29.05.2015, 22:44:17
от fsv
Как сделать ссылки на следующий/предыдущий товар в карточке товара?

Автор holovla

Ответов: 10
Просмотров: 2136
Последний ответ 07.05.2015, 10:14:41
от holovla