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

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Нужен совет как правильно реализовать структуру каталога

Имеем маг автозапчастей
Кроме дефолтовых полей, как то артикул, категории, наименование и т.д.,
необходимо добавить доп. отличия товара:

"каталог.№ ориг.",
"каталог.№ НЕориг.",
"оригинал",
"неоригинал",
"марка машины"

причем "оригинал", "неоригинал" - это разные карточки одного и того же товара (я так предполагаю) т.к. цены у них разные

непонятно как с "марка машины"

т.е. деталь "Х" имеет несколько каточек:

Х - оригинал / марка машины1
Х - неоригинал / марка машины1
Х - оригинал / марка машины2
Х - неоригинал / марка машины2

и т.д.

дерево видится такое:
категория (двигатель) - подкатегория (поршни) - товар Х оригинал / марка машины1
категория (двигатель) - подкатегория (поршни) - товар Х НЕоригинал / марка машины1
и т.д.

и тут непонятки:
1-как добавлять эти поля, т.е. метод - то ли через "доп.поля", то ли через "тип"
2 - или вообще должна быть другая структура для лучшего вывода и скорости
3 - как «подвязать» параметр "марка машины" – не хотелось бы использовать 3-уровень каталога

что можете посоветовать?
сенкс
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
короче с типами как-то "неправильно" все выходит

прихожу к выводу что вертуе не хватает дополнительныйх справочников типа "производителей", но только создаваемы пользователем под свои нужды
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Я бы делал подобную структуру просто разными товарами. Возможно, дочерние товары, но я их сути так и не вкурил.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
по идее они и так разные будут
есть оригинальная запчасть, а есть не оригинальная - две разные карточки, а не выбор через свойства "выберите.."
к тому же не оригинальных может быть несколько - скажем 2-3 разных производителей

не могу придумать как реализовать марка машины и модель
мне не хватает еще справочников... :(

реализовать через еще одни категории?
типа так:

категория оптика ---- подкатегория фары ------
                                                                       |---  товар1
категория марка -----подкатегория модель -----

т.е. товар принадлежит нескольким категориям

 
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
1. Оригинальные Пальцостуки, неоригинальные Пальцостуки из Китая, неоригинальные Пальцостуки из Жмеринки - три разных товара.
2. Марка и модель - через типы. Очеивдно, функция марки и модели - просто информировать людей?
3. Связанные товары для объёдинения между собой в группы. Возможно, мультикатегории - раз товары по одному распиханы по иерархии запчастей, раз по стране поставки. Хотя в тако виде можно и обычными фильтрами по типам реализовать.
4. Про справочники не понял.
5. Ещё раз - мультикатегорийность в ВМе есть. Потому смело суй в разные категории одно и то же.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
про справочники:

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

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

что мы имеем когда используем типы и свойства - а имеем лишний переход на страницу "подробно" товара для того что б увидеть и выбрать тот или иной
т.е. в таблице вывода товара в категории нет возможности сразу нажать "в корзину"
иначе говоря карточка товара становиться "контейнером" для других карточек-позиций - дополнительная ветвь типа
 
если же добавить свои справочники и поля, то каждая карточка станет уникальной - метод сплошной идентификации, как в торговых базах аптек скажем
при большой номенклатуре это вредно конечно

тут еще гемор в том, что у производителей в каталоге оригиналов у одной и той же позиции бывает множество кодов-аналогов, т.е. запчасти-заменители, у одного насчитал аж 28
иначе говоря, в поиске должно быть - ввести любой из этих кодов и попасть на одну и ту же карточку товара
либо заводить 28 одинаковых во все, но с разным кодом каталога, карточек

кста, все свойства (и модель и марка и все остальные) должны быть в поиске или фильтре

 


 
 
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
про справочники:

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

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

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

не понял

что мы имеем когда используем типы и свойства - а имеем лишний переход на страницу "подробно" товара для того что б увидеть и выбрать тот или иной
т.е. в таблице вывода товара в категории нет возможности сразу нажать "в корзину"
иначе говоря карточка товара становиться "контейнером" для других карточек-позиций - дополнительная ветвь типа

Когда используються типы лишних переходов нет. А свойства в твоём случае не нужны вообще.



Цитировать
если же добавить свои справочники и поля, то каждая карточка станет уникальной - метод сплошной идентификации, как в торговых базах аптек скажем
при большой номенклатуре это вредно конечно

Карточка - это тип с набором параметров.
Добавляешь товару готовый этот набор и меняешь, где надо, значения параметров.


тут еще гемор в том, что у производителей в каталоге оригиналов у одной и той же позиции бывает множество кодов-аналогов, т.е. запчасти-заменители, у одного насчитал аж 28
иначе говоря, в поиске должно быть - ввести любой из этих кодов и попасть на одну и ту же карточку товара
либо заводить 28 одинаковых во все, но с разным кодом каталога, карточек


В типе создаёшь два параметра "Код" и "Эквивалент". Коды разные, эквиваленты одинаковые.

кста, все свойства (и модель и марка и все остальные) должны быть в поиске или фильтре

Поиск по типам реализован платными и бесплатными фильтрами. Может, что-то допилить прийдётся. Но на то ты и сайт разрабатываешь, чтобы допиливать. Было бы просто слишком копи-пейстнуть Joomla с ВМом.

И вообще, я бы советовал на ВМ 2.0 сразу делать.

 

Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
И вообще, я бы советовал на ВМ 2.0 сразу делать.

аргументируй :)
что там есть особого?

да импорт ты для него не сделал еще :)

Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
ВМ 1.х.х не имеет перспектив.

Импорт ещё не сделал.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
>В типе создаёшь два параметра "Код" и "Эквивалент". Коды разные, эквиваленты одинаковые.

вот это не осилил
во первых по реализации
во вторых по идее: если таких 1000 товаров, то будет 1000 типов?
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Ну поучи теорию, тогда. (-:
Тип - параметр типа - значение параметра типа.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
ошибся
имелось ввиду не типы, а значения
по одному товару с 28 эквивалентными:
параметр код оригинала: одно значение для товара №1
параметр код эквивалента: 28 значений для товара №1
так?
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Нет. У 28 товаров один и тот же код эквивалента.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Нет. У 28 товаров один и тот же код эквивалента.

да нет
я наверно неудачно описал проблему
по сути это один и тот же товар, по одной и той же цене
просто у него есть дубли кода, т.е. товар один, а кодов много
чем это вызвано это вопрос производителя
суть заключается в том, что введя любой из этих кодов ты попадаешь на одну и ту же карточку товара
мне вообще не нужен фильтр по ним, а соответственно и тип/параметр/значения
нужен простой поиск в вертуе
ну если бы загнать все эти коды в описание товара и искать некий код как слово в описании
поэтому я ничего сообразить не могу как добавить поле, аналог описания (краткого описания) и подключить его к поиску, интерфейсу в шаблонах и импорту-экспорту

по другому не могу придумать

Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Аналог описания текстовый тип.
Или просто в описание автоматом добавлять.

Делать отдельное поле, потом прикручивать поиск по нему - оно того не стоит.
« Последнее редактирование: 17.01.2012, 23:42:29 от Gruz »
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Или просто в описание автомато добавлять.

пока остановился на этом
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

svcitius

  • Захожу иногда
  • 98
  • 1 / 0
« Последнее редактирование: 20.12.2011, 12:45:05 от svcitius »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Title каталога товаров

Автор lyopa

Ответов: 1
Просмотров: 2433
Последний ответ 25.08.2008, 19:47:12
от ART-DELI
Структура товаров в virtuemart

Автор justalex

Ответов: 3
Просмотров: 3082
Последний ответ 17.08.2008, 13:48:08
от justalex