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

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Здравствуйте, подскажите как добавить кнопку "В корзину" в карточки товара (components/com_jshopping/templates/list_products/product.php) под фотографией и ценой?   ^-^
Копирую строку

<input type="submit" class="btn addToCart_modal buy" value="<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
 
из файла (product_default.php) в файл (components/com_jshopping/templates/list_products/product.php) - кнопка появляется, но при нажатии заказ в корзину не переносится. При нажатии на кнопку "В корзину" из файла (product_default.php) все работает.
« Последнее редактирование: 18.12.2018, 17:10:14 от Indexxx »
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #1 : 18.12.2018, 17:47:27 »
Если нужно показать в "Купить" в списке товаров, то через настройки JoomShopping - Поставить галочку
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #2 : 18.12.2018, 18:03:52 »
"Показать кнопку купить для списка товаров" в настройках ставлю, но ничего не появляется.
В самом товаре есть кнопка "в корзину" рабочая. Мне нужно в верхних разделах ее добавить, там где товары идут списками
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #3 : 18.12.2018, 18:25:44 »
...в настройках ставлю, но ничего не появляется.
Тогда проблема с вашим шаблоном, может там кнопка вырезана. Сайт покажите.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Добавить кнопку 'В корзину'
« Ответ #4 : 18.12.2018, 18:35:55 »
Возможно вы используете атрибуты. Выбор атрибута обязателен, в списке товаров они не показываются, поэтому и кнопки купить нету
Создание сайтов, шаблонов, помощь в решении проблем.
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #5 : 18.12.2018, 18:36:26 »
В этот код - product.php:
Спойлер
[свернуть]
Пытался добавить строку из product_default.php
Спойлер
[свернуть]
<div id="blocks2" class="row">
 <div class="buttons col-xs-8 col-xs-offset-2"> 
                                                        <input type="submit" class="btn btn-lg1 btn-block btn-round btn-base1 addToCart_modal buy" value="<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                                                    </div>
                                                </div>


кнопка появляется, но в корзину товар не заносит при нажатии



« Последнее редактирование: 14.01.2019, 18:57:29 от Indexxx »
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #6 : 18.12.2018, 18:44:57 »
Если сайт - это https://cao-ufa.ru то в консоль загляните - куча ошибок. Конфликт jQuery
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #7 : 18.12.2018, 18:56:21 »
Возможно вы используете атрибуты. Выбор атрибута обязателен, в списке товаров они не показываются, поэтому и кнопки купить нету

Как это можно проверить? в админке ?
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #8 : 18.12.2018, 18:57:23 »

Да, этот сайт. Можете подсказать как это можно поправить?
« Последнее редактирование: 14.01.2019, 18:57:07 от Indexxx »
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #9 : 18.12.2018, 19:01:48 »
Убрать это
Код
<script src="/media/jui/js/jquery.min.js?9c975328fef96ff249d446d0d2bf5c1e" type="text/javascript"></script>

Или это
Код
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Добавить кнопку 'В корзину'
« Ответ #10 : 18.12.2018, 19:01:56 »
Как это можно проверить? в админке ?
Не надо проверять. Не используете...
Создание сайтов, шаблонов, помощь в решении проблем.
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #11 : 18.12.2018, 19:05:29 »
Возможно вы используете атрибуты. Выбор атрибута обязателен, в списке товаров они не показываются, поэтому и кнопки купить нету
Атрибуты тут не причем, тогда была бы кнопка и кидало бы на карточку товара.

Единственно может в настройках стоит скрыть кнопку купить, если цена = 0 или кол-во = 0
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #12 : 18.12.2018, 19:35:08 »

Или это
Код
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


убрал это - не помогло 
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #13 : 18.12.2018, 19:44:11 »
Ошибки еще остались но это не главное...

Откуда Вы это взяли?
Код
<input type="submit" class="btn btn-lg1 btn-block btn-round btn-base1 addToCart_modal buy" value="В корзину" onclick="jQuery('#to').val('cart');">

Там вот это должно быть
Код
<div class="buttons">
            <?php if ($product->buy_link){?>
                <a class="btn btn-success button_buy" href="<?php print $product->buy_link?>">
                    <?php print _JSHOP_BUY?>
                </a>
            <?php }?>
           
            <a class="btn button_detail" href="<?php print $product->product_link?>">
                <?php print _JSHOP_DETAIL?>
            </a>
           
            <?php print $product->_tmp_var_buttons;?>
        </div>
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Indexxx

  • Захожу иногда
  • 59
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #14 : 18.12.2018, 19:59:08 »
Да  :D
Спасибо - помогло !
*

Pharaon2

  • Новичок
  • 3
  • 0 / 0
Re: Добавить кнопку 'В корзину'
« Ответ #15 : 13.09.2023, 09:48:14 »
Подскажите, пожалуйста, как добавить в профиль пользователя заказанный товар? Чтобы клиент при просмотре своего профиля видел свои заказы. Т.к. после оформления заказа корзина становится пустой.
*

kit2m2

  • Живу я здесь
  • 3360
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Добавить кнопку 'В корзину'
« Ответ #16 : 13.09.2023, 10:42:25 »
Подскажите, пожалуйста, как добавить в профиль пользователя заказанный товар? Чтобы клиент при просмотре своего профиля видел свои заказы. Т.к. после оформления заказа корзина становится пустой.
Создать ссылку - "Тип пункта меню = Клиенты" и Страница = "Мои заказы" - Это и будет страница с заказами пользователя.
Кстати на странице профиля есть ссылка на список заказов.

А вообще у меня есть расширения расширенного профиля клиента.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Товар - файл. Как ограничить добавление в корзину только 1 шт?

Автор SLV

Ответов: 15
Просмотров: 2237
Последний ответ 24.07.2025, 11:34:21
от SLV
Как добавить Title при загрузки картинки?

Автор art22

Ответов: 16
Просмотров: 1479
Последний ответ 04.05.2023, 17:21:50
от art22
Скрыть кнопку Подробнее для списка товаров

Автор Anton shop

Ответов: 11
Просмотров: 3300
Последний ответ 17.03.2023, 13:24:42
от geral
Как добавить код в <head> в отдельные товары JoomShopping?

Автор Hugo

Ответов: 3
Просмотров: 3000
Последний ответ 01.03.2023, 12:07:42
от Hugo
Как добавить кнопки сортировки в модуль Sj Extra Slider for JoomShopping?

Автор Ravil

Ответов: 3
Просмотров: 1406
Последний ответ 14.06.2022, 16:37:53
от kit2m2