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

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
shaen8032002,
Транслитерация происходит за счет стандартного функционала генерации алиасов. Если у Вас некорректно установлен русский язык, то и транслитерация не будет работать. Не только в моем модуле, а во всей Joomla.
Если у Вас сайт только на английском, - то вопросов нет. А если на русском (иначе зачем бы Вы использовали русские значения полей), то это надо исправлять.
При переводе сайта на русский язык товары пропадают потому, что Вы изначально неправильно начали работать с virtueamart и добавили товары под английским языком. Лучше исправить сейчас, чем потом загнать себя в угол.

По альтернативам присваивания классов: надо чуть подкорректировать шаблон, чтобы присваивать класс по ID значения.
*

fedkaf

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Купил ваш модуль.
Сделал все как написано. Добавил поле родителя. подвязал туда поля характеритик (цвет, размер).. В плагине пытаюсь их подвязать но нифига не происходит! Там выпадающий список отсутствует даже... ЧТО ДЕЛАЬ ! ? !
*

detonart

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
"Выберите несколько вариантов" - где можно добавить английский вариант этого текста?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
*

detonart

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
спс... уже разобрался... это "Первый элемент для выпадающего списка"
отдельное спасибо за, практически мгновенную, реакцию!
*

detonart

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
спс... уже разобрался... это "Первый элемент для выпадающего списка"
отдельное спасибо за, практически мгновенную, реакцию!
а вот нет... не получается заменить на языковую переменную :(
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
detonart, попробуйте еще раз. Если не получится, напишите на почту поддержки. Но так, сходу, вроде должно хавать константу.
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Купил модуль и сразу же разочаровался (надеюсь преждевременно). У меня к каждому товару выгружаются настраиваемые поля обработкой из 1С. Это поля строкового типа. Этот модуль можно как-то привязать к уже существующим полям у товаров, а то вручную добавлять новые поля и значения для каждого товара вообще не интересно!
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Купил модуль и сразу же разочаровался (надеюсь преждевременно). У меня к каждому товару выгружаются настраиваемые поля обработкой из 1С. Это поля строкового типа. Этот модуль можно как-то привязать к уже существующим полям у товаров, а то вручную добавлять новые поля и значения для каждого товара вообще не интересно!
Со строковыми полями работать не будет. Мы указываем и в описании и в документации скригшотами о том, что добавляется собственный тип поля и поиск производится по нему. За счет этого нам удается достигать тех скоростей поиска, которых нельзя достичь при работе со стандартными типами полей.
Поддерживается работа наших полей с расширением CSVI и интеграцией c 1C от 1c-virtuemart.ru.
Также готовы проконсультировать по структуре данных, если будете дописывать механизм выгрузки из 1С.

В случае, если модуль все-таки Вам не подойдет, - оформим возврат.
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Поддерживается работа наших полей с расширением CSVI и интеграцией c 1C от 1c-virtuemart.ru.

У меня как раз от них обработка! Как можно с вами проконсультироваться по поводу синхронизации этих двух модулей?

P.S. Спасибо что отозвались, а то от товарищей с  1c-virtuemart.ru в своё время так и не дождался никаких телодвижений. Пришлось всё самому допиливать.
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Отправил контакт в личку.
Видимо у ребят не всегда есть возможность ответить вовремя. Поспособствуем. Но основной смысл в том, что у них уже это все есть и надо именно их по этому вопросу дергать.
*

unycom

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Pharaoh, разбираюсь с присланным Вами CSVI файлом, не могу реализовать загрузку нескольких параметров согласно описанию http://www.csvimproved.com/index.php?option=com_content&view=article&id=922
"product_sku";"custom_title";"custom_value";"custom_param";"product_name";"product_in_stock";"product_price"
"10001";"Color~Size";"param~param";"Blue#Pink#Grey~M#L#S";"Product with filter";"0";"100"
Вопрос: копать дальше или нужна ПРО версия?
*

unycom

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Pharaoh, разбираюсь с присланным Вами CSVI файлом, не могу реализовать загрузку нескольких параметров согласно описанию http://www.csvimproved.com/index.php?option=com_content&view=article&id=922
"product_sku";"custom_title";"custom_value";"custom_param";"product_name";"product_in_stock";"product_price"
"10001";"Color~Size";"param~param";"Blue#Pink#Grey~M#L#S";"Product with filter";"0";"100"
Вопрос: копать дальше или нужна ПРО версия?

Вроде напал на след. Если в опенофисе делаю так: param~param , то при открытии в блокноте вижу ~param~~param~, тогда здесь же удаляю лишние ~, открываю в опене вижу опять param~param, загружаю на сайт - все нормально. В чем причина пока не понял
*

unycom

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
"""
При выводе результатов фильтра сверху на странице выводятся категории - как их убрать?
За вывод отвечает шаблон VirtueMart category. Чтобы убрать категории со страницы результатов:
Откройте файл: "/components/com _virtuemart/views/category/tmpl/default.php" (или его аналог в вашем шаблоне):
замените if ($this->category->haschildren) {  на if ($this->category->haschildren && !JRequest::getBool('search')) {
"""
Данная проблема в VM 2.0.26d реализуется так: Настройки-Шаблоны-Показать подкатегории (убрать галочку)
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
unycom,
нужна CSVI Pro или запросить у нас нашу модификацию CSVI Free по почте поддержки. Об этом подробно описанио в документации.

Данная проблема в VM 2.0.26d реализуется так: Настройки-Шаблоны-Показать подкатегории (убрать галочку)
Ранее эта опция отвечала за вывод категорий на главной странице VirtueMart. Спасибо.
*

lakostikua

  • Новичок
  • 1
  • 0 / 0
Добрый вечер, у меня проблема с полем цены ! 1. уменя в магазине есть 2 цены (основная в евро и та что виводитса на сайте в грн ) фильтр максимальное значение берет с (грн) но считает по (евро ), когда делаю фильтрацию естествено неправильное количество . как можно вибрать фильтру только (грн)?  и на будущее есть вкладка цен в модуле - может там придумать по какой валюте он будет работать, а ? жду ответа проект горит ( , зарание спс
*

Elviss

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
что то совсем не пойму, установил Cherry Picker, на странице Home показывает что есть товары:

, но уже на Assign Filters - не показывает ни одного товара:
 
. Фильтры созданы были, все по видео инструкциям в сети, что может быть не так? почему нет товаров для назначения им фильтров?
« Последнее редактирование: 06.02.2014, 15:10:49 от Elviss »
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
*

Elviss

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Elviss, Вы ошиблись темой.
Здесь обсуждается другой продукт.

извиняюсь)
*

unycom

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Интересно, можно ли организовать тысячные пробелы в фильтре по цене. (1000 => 1 000)?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
на этапе вывода чисел - вполне
на этапе инпутов и передачи данных - не стоит
*

unycom

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Двигая ползунком, созерцаем в окошке 1 000 000? Если так можно, что необходимо сделать?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Конкретно в этом "окошке" сделать не поулчится.
Нужно создать новые блоки, скрыть инпуты, в файле js.js найти место, где изменяются значения инпутов при движении ползунков и добавить действия вывода значения в эти новые блоки. На последнем шаге в том числе можете прописать JS функцию, разбивающую на пробелы каждые 3 символа.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Привет.Столкнулся с такой проблемой, что при загрузке сайта фильтр отображается, потом когда сайт полностью загрузился, все что внутри фильтра ремувится. Остается такой вот контент
Спойлер
[свернуть]
Версия вм 2.0.26д. Ранее такого не было.
Закоментил эту строку
$('form',selector).before(form).remove(); - начал работать.Что то с настройками не так?Или з самими кастомными полями?Но при этом в шаблонах slider_double , пропадают ползунки.При том обратно таки при загрузке они есть и их можно юзать, а когда сайт полностью подгружался, скрипт что то делает и в общем пропадают.
« Последнее редактирование: 08.02.2014, 22:07:01 от olejenya »
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
olejenya, такой хак недопустим. Скорее всего на странице, к которой обращается AJAX запрос, тупо не выводится модуль.
Жду в скайпе для выясснения деталей...
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
olejenya, такой хак недопустим. Скорее всего на странице, к которой обращается AJAX запрос, тупо не выводится модуль.
Жду в скайпе для выясснения деталей...
Многочысленными методами тыка нашел причину.Сейчас все четко работает.Короче у меня есть 2 меню категори, созданные в Joomla и ы них еще подменю категорий.Я им назначил страницу категорий и шаблон продуктов.
Так вот первое, убрал шаблон оставил невыбран(overide), как то так по английски.
И второе не знаю какая связь, но надо обязательно и подкатегорийм назвначить привязку модуля.Как это сделал то все заработало.В настройках модуля отключил вывод категорий и все их настройки.Мб с этим связано как то.Как пересечемся в скайпе сразу маякну)Спасибо.
*

Sh1VeR

  • Новичок
  • 5
  • 0 / 0
Пытаюсь загрузить параметры:
http://gyazo.com/d506cd42aeba1e71bb72787dd36a07dc
Получается так, что загружает параметры только для 1го товара, а для остальных получаются пустые значения

Попробуйте в настройках включить автоматические заголовки по 1ой строке.
И формат файла: utf-8, каждая ячейка с кириллицей должна быть обрамлена (кавычки или какой там символ у вас используется).
Соответственно для openoffice выглядеть должно примерно так:
Спойлер
[свернуть]

Это тоже пробовал сделать
« Последнее редактирование: 20.02.2014, 16:42:58 от Sh1VeR »
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Sh1VeR, пишите на почту поддержки с указанием номера заказа. Будем разбираться с Вашей пробелмой.
*

Sh1VeR

  • Новичок
  • 5
  • 0 / 0
Я не программист, не могу понять что нужно прописывать в качестве CSS селектора для AJAX обновления модуля? Можете подсказать вот для этого сайта
« Последнее редактирование: 21.02.2014, 19:13:58 от Sh1VeR »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин доставки сдэк для Joomla+Virtuemart

Автор boraah

Ответов: 7
Просмотров: 5201
Последний ответ 16.12.2024, 23:08:25
от David_99
Плагин оплаты картами Visa/MasterCard VirtueMart 2.x-3.x Цена 5.00 $

Автор gartes

Ответов: 33
Просмотров: 11420
Последний ответ 07.11.2021, 23:30:32
от a-li
[Импорт/экспорт] Excel2VM - для VirtueMart 2-3. Excel и Яндекс.Маркет. (xls, XLSX, CSV, xml)

Автор katrey

Ответов: 109
Просмотров: 28770
Последний ответ 09.06.2021, 07:58:15
от asteroidx
Плагин отправки SMS при заказе в VirtueMart 2

Автор Arkantos

Ответов: 19
Просмотров: 5602
Последний ответ 22.03.2021, 17:25:23
от nnnata
Загрузка файлов в корзине VirtueMart 3

Автор Kodopik

Ответов: 0
Просмотров: 2721
Последний ответ 25.02.2021, 13:56:20
от Kodopik