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

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Появилась предположение, что данный addon_jshopping_extended_menu_v.1.2  (может/еще) конфликтует с платным адоном от разработчиков: Image_for_characteristics_1.0.4, который добавляет картинки для характеристик.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Понимаете, данный аддон, единственное что делает - это перезаписывает metadata.xml. Соответственно с другими аддонами его действия не пересекаются.
Перезапись файла происходит при Установке аддона, при редактировании/добавлении любой категории, производителя, метки и т.д. Во все остальное время он бездействует (включая само создание меню).
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Понимаете, данный аддон, единственное что делает - это перезаписывает metadata.xml. Соответственно с другими аддонами его действия не пересекаются.
Перезапись файла происходит при Установке аддона, при редактировании/добавлении любой категории, производителя, метки и т.д. Во все остальное время он бездействует (включая само создание меню).

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

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Ошибка при установки addon_jshopping_extended_menu_v.1.2
Код
Fatal error: Class 'DomDocument' not found in /home/.../.../docs/plugins/jshoppingadmin/extended_menu/extended_menu.php on line 61
Простите Вы написали 2 сообщения подряд, и второе ушло на 2-ую страницу, так что ваш ответ с текстом ошибки увидел только что...
Проверьте в настройках PHP включена ли поддержка DOM/XML?
Самый короткий и точный ответ можно прочитать тут
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kit2m2

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

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
фильтрация в ЖШ работает в пределеах категорий.
смотрите как работает стоковый фильтр.
потому с главной Вы скорее всего не отфильтруете все товары с Хар-кой во всех категориях.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
фильтрация в ЖШ работает в пределеах категорий.
смотрите как работает стоковый фильтр.
потому с главной Вы скорее всего не отфильтруете все товары с Хар-кой во всех категориях.

В ручную, через ссылку - РАБОТАЕТ! (Фильтрация всех товаров с Главной по всем категориям)
Код
index.php?option=com_jshopping&controller=products&task=view&category_id=&manufacturer_id=&label_id=&vendor_id=&page=&price_from=&price_to=&char[0]=&extra_fields[3][]=4
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
После установки в меню появились характеристики, но чтобы выбрать характеристику мне нужно выбрать категорию...
фильтрация в ЖШ работает в пределеах категорий.
Нет, нет и еще раз нет.
Данный аддон позволяет создавать пункты меню для товаров без привязки к категориям...
Если Вы посмотрите на Demo, то увидите что товары фильтруются из всех категорий.
Для этого нужно создавать пункт меню с типом "Товары".
Если создавать тип "Категории", и указывать характеристики, то так же фильтрация проходит отлично.
Пример фильтрации по всем категориям.
Пример фильтрации по категории
По сути, если Вы взглянете на ссылку которую формирует меню, то она ничем не будет отличаться от Вашего ручного варианта (За исключением отсутствия [] которые уже обрабатывает плагин при открытии страницы)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Цитировать
DOM/XML - Включил все заработало, установка адона прошла успешно. После установки в меню появились характеристики, но чтобы выбрать характеристику мне нужно выбрать категорию, а в данном случае мне нужно чтобы выбор пункта меню работал по всем категориям. Если выбираю категорию и характеристику то при заходе по ссылки в меню вижу страницу 404.

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

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
kit2m2, так ето...выбирайте тип меню Товары, а не Категория
« Последнее редактирование: 04.03.2013, 14:13:20 от ELLE »
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
kit2m2, так ето...выбирайте тип меню Товар, а не Категория

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

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
на Joomla 3 совсем не встал, а жаль...
заругалось на 192 стр. в jshoppingadmin\extended_menu\extended_menu.php - Call to undefined method JModel::getInstance()
Код
$_StaticText = JModel::getInstance("StaticText", "JshoppingModel"); 

спустя пару минут........
при этом функции свои почти выполняет.
но есть некоторые странности, а именно - в поле "ссылка" URL правильный -
index.php?option=com_jshopping&controller=products&task=&category_id=&manufacturer_id=&label_id=&vendor_id=
&page=&price_from=&price_to=&extra_fields_1[0]=&extra_fields_2[0]=&extra_fields_3[0]=&extra_fields_4[0]=&extra_fields_5[0]=9&extra_fields_6[0]=

вот именно по этой ссылке отображаются нужные товары

с включенным SEF не работает - выводятся все товары
« Последнее редактирование: 13.03.2013, 23:15:54 от ELLE »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Попробуйте использовать версию 1.3
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Попробуйте использовать версию 1.3
спасибо, работает.
одно предупреждение осталось при создании пункта меню
Код
Warning: SimpleXMLElement::addChild() [simplexmlelement.addchild]: unterminated entity reference Co in 
..\libraries\joomla\form\form.php on line 1996

в названии производителя присутствует амперсанд
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Почему то выбираемые характеристики никак не влияют на результат показа товаров. Пункт меню хоть Товары, хоть Категории. Метки, производитель и т.д. влияют, а выбранные характеристики - нет. Версия JS 3.14.0. Установленный аддон версии 1.3. До этого стоял аддон Расширенные пункты меню JoomShopping (nevigen.com). Подскажите, пожалуйста, в чем может быть проблема, может кто-нибудь уже сталкивался с таким?
« Последнее редактирование: 16.03.2013, 17:07:58 от audevg »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Версия JS 3.14.0. Установленный аддон версии 1.3.
Версия 1.2 предназначена для версии 3.х
Версия 1.3 предназначена для версии 4.х

Возможно ввел в заблуждение не описав это на своей странице.
Установите 1.2.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Версия 1.2 предназначена для версии 3.х
Версия 1.3 предназначена для версии 4.х

Возможно ввел в заблуждение не описав это на своей странице.
Установите 1.2.
Установил как Вы подсказали, но все равно выбор характеристик никак не влияет на результат.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Установил как Вы подсказали, но все равно выбор характеристик никак не влияет на результат.
Сообщите страничку на которой можно посмотреть. И скиньте файл (plugins\jshoppingproducts\extended_menu\extended_menu.php) куда-нибудь где можно его скачать.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
скиньте файл (plugins\jshoppingproducts\extended_menu\extended_menu.php) куда-нибудь где можно его скачать.
Вот, пожалуйста, http://rghost.ru/44561609
Сообщите страничку на которой можно посмотреть.
http://www.global-jeans.com/index.php/rasprodazha-dzhinsov.html
Выбран тип меню Products, в обязательных параметрах: show all, выбрана для примера характеристика "тип товара" с опцией "сорочки". По идее должны быть показаны только сорочки - отображаются же все товары. Выбор других обязательных параметров таких как категории, метки и т.п. и смена типа меню на Categories - все равно происходит отбор без учета выбранной характеристики.
« Последнее редактирование: 17.03.2013, 11:57:49 от audevg »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Действительно ошибся файлом, когда перезагружал версию 1.2.
Скачайте заново и установите поверх
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Действительно ошибся файлом, когда перезагружал версию 1.2.
Скачайте заново и установите поверх
Скачал, установил, все тоже самое, к сожалению. (в extended_menu.php изменения есть в 17 и 18 строке с "extra_fields" на "extra_field").
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Скачал, установил, все тоже самое, к сожалению. (в extended_menu.php изменения есть в 17 и 18 строке с "extra_fields" на "extra_field").
Да да... Именно.

Ладно, пойдём другим путём.
1. Откройте список плагинов. Удостоверьтесь что оба плагина Extended Menu включены.
2. Откройте Ваш пункт меню, скопируйте значение поля "Ссылка" и вставьте её в браузер. Убедитесь, что там параметры называются "extra_field"
3. Если не помогает скиньте эту ссылку сюда. Буду дальше смотреть.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
1. Откройте список плагинов. Удостоверьтесь что оба плагина Extended Menu включены.

Посмотрел. В списке плагинов только один JoomShopping Plugin Extended Create Menu. Он включен.

2. Откройте Ваш пункт меню, скопируйте значение поля "Ссылка" и вставьте её в браузер. Убедитесь, что там параметры называются "extra_field"

Действительно, параметры называются не "extra_field" а "extra_fields". Создал другой пункт меню для пробы - тоже формируется ссылка не с "extra_field" а "extra_fields".
Пробовал вручную редактировать строку в браузере (с "extra_fields" на "extra_field") - ничего не меняется.

3. Если не помогает скиньте эту ссылку сюда. Буду дальше смотреть.

index.php?option=com_jshopping&controller=products&task=&category_id=&manufacturer_id=&label_id=&vendor_id=&page=&price_from=&price_to=&extra_fields_10[0]=&extra_fields_15[0]=&extra_fields_21[0]=&extra_fields_20[0]=121
« Последнее редактирование: 18.03.2013, 13:54:54 от audevg »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Посмотрел. В списке плагинов только один JoomShopping Plugin Extended Create Menu. Он включен.
Должно быть два. 1 в категории jshoppingadmin (Формирует выпадающие списки для меню) jshoppingproducts (парсит гет-параметры и подставляет их в фильтр)
Подозреваю, что отсутствует как раз второй.
На счет extra_field или extra_fields я уже запутался и честно не знаю какой правильный. Могу позже все-таки навести порядок в аддоне. Если у Вас они будут отличаться, Вы знаете где нужно подправить.
Через Опции/Дополнения, удалите аддон и установите заново.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Должно быть два. 1 в категории jshoppingadmin (Формирует выпадающие списки для меню) jshoppingproducts (парсит гет-параметры и подставляет их в фильтр)
Подозреваю, что отсутствует как раз второй.
На счет extra_field или extra_fields я уже запутался и честно не знаю какой правильный. Могу позже все-таки навести порядок в аддоне. Если у Вас они будут отличаться, Вы знаете где нужно подправить.
Через Опции/Дополнения, удалите аддон и установите заново.

Сделал все как Вы написали.
В первый раз пропали пункты всех меню, плагины (оба) в списке не появились, в списке дополнений аддон присутствует.
Сделал бэкап.
Во второй раз решил предварительно удалить аддон, папку extended_menu с содержимым, очистить metadata.xml от характеристик и опций. Удалил. Установил аддон заново. Плагин группы jshoppingproducts не появился, характеристики и опции в metadata.xml не появились.
Опять сделал бэкап.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Ок. Делаем так: Через час приду домой, наведу всё-таки порядок в этом аддоне.
Возможно там что-то пропущено, раз не появляется второй плагин.

Update: Теперь еще раз проверьте. Теперь там порядок. Всё-таки правильно было extra_fields
« Последнее редактирование: 18.03.2013, 19:31:01 от Linfuby »
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

audevg

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Ок. Делаем так: Через час приду домой, наведу всё-таки порядок в этом аддоне.
Возможно там что-то пропущено, раз не появляется второй плагин.

Update: Теперь еще раз проверьте. Теперь там порядок. Всё-таки правильно было extra_fields

Все отлично работает! Спасибо вам за аддон! (проверьте ЯД).
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Все отлично работает! Спасибо вам за аддон! (проверьте ЯД).
Всегда рад помочь.
Спасибо. Давненько мне не выражали благодарность рублём. Приятно, когда твой труд ценят.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
А на версии 3.11.0 кто-нибудь пробовал?
поставила аддон версии 1.2
URL создается вида -
index.php?option=com_jshopping&controller=products...&extra_fields_19[0]=&extra_fields_20[0]=15&extra_fields_21[0]=&extra_fields_22[0]=
и показывает все товары.

пробовала вручную ввести эту ссылку - все товары
пробовала вместо &extra_fields_20[0]=15 прописывать так - &extra_fields[20][]=15, как выше говорили (уже не помню как правильно)
- так тоже все товары, как будто параметры вообще не работают
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Сайт локальный да?
Проверьте работает ли плагин extended_menu. Там всего 1 функция, напишите там вывод какого-нибудь сообщения.
Пробовали ли создавать тип меню Категории? Там тоже не работает?
Возможно модифицировались родные файлы из папки tables. В частности products.php
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод списка товаров с учетом значения связанного атрибута

Автор newalex

Ответов: 2
Просмотров: 1170
Последний ответ 17.10.2024, 08:51:19
от newalex
[Решено] Адрес e-mail как логин при регистрации

Автор orexov_m

Ответов: 51
Просмотров: 15137
Последний ответ 28.02.2024, 18:34:01
от nevigen
Вместо стоимость 0 руб. вывести БЕСПЛАТНО в карточке товаров (Каталоге)

Автор IgorGeneralov

Ответов: 0
Просмотров: 2204
Последний ответ 13.04.2023, 21:06:09
от IgorGeneralov
[Решено] - Заказ на одной странице

Автор shurakana

Ответов: 58
Просмотров: 18988
Последний ответ 16.03.2023, 09:53:16
от kit2m2
Функционал сравнение товаров в JoomShopping

Автор falur

Ответов: 53
Просмотров: 15612
Последний ответ 22.08.2022, 09:54:16
от kit2m2