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

yunoshev

  • Moderator
  • 1271
  • 179 / 1
Здравствуйте, уважаемые форумчане!

Давно (еще с середины 2008 года :) ) планировал сделать свой каталог товаров, чтобы было удобно и понятно, и в тоже время -- не громоздко и с русскоязычной поддержкой. Я не планировал делать аналог чего-либо, кому-то подражать. Просто делал все так, как сам себе это представляю и как советовал один знакомый, т.е. был "трезвый взгляд со стороны". А там как раз "созрел" один заказчик на каталог такого плана и пошло-поехало...

Что в нем есть на данный момент:
[spoiler title=АДМИНИСТРАТИВНАЯ ЧАСТЬ]
АДМИНИСТРАТИВНАЯ ЧАСТЬ
  • Управление валютами (при добавлении новой валюты Вы можете указать ее наименование, код трехсимвольный, символ валюты, текущий обменный курс и валюту, которая будет использоваться по-умолчанию при показе товаров);
  • Управление состояниями товаров (при добавлении нового состояния товара Вы должны указать его название, цвет отображения и состояние, которое будет использоваться по-умолчанию при добавлении нового товара);
  • Управление странами (перечень допустимых стран производителей);
  • Управление производителями (с добавлением иконок брендов);
  • Управление характеристиками товаров:
       * перечень возможных характеристик товаров для каждой категории товаров, причем доступна возможность тематической группировки характеристик, типа: процессор, видеосистема, слоты расширения;
       * использовать хар-ку в модуле расширенной фильтрации с возможностью выбора типа визуального элемента для отображения: select /по-умолчанию/, checkbox, input сделано 2009-11-18;
       * напротив перечня параметров (списка значений) характеристики вводятся наценки за параметры (на будущее для реализации продаж вариаций товаров) сделано 2009-11-18;
  • Управление категориями товаров (с добавлением иконок и фильтрацией товаров при показе определенным группам посетителей);
  • Управление товарами:
       * указание фото;
       * указание свойств товара и их значений (вручную или из предустановленного списка значений);
       * указание товаров сопутствующих и аналогов (новое);
       * прикрепление к товарам сопроводительных файлов (новое);
  • Управление настройками каталога (включает в себя как настройки фронтальной части каталога, так и административной его составляющей);
  • Управление отзывами о товарах (используется JComments и плагин для него);
  • Обновление структуры базы данных каталога без Вашего ручного вмешательства (доступно после обновления файлов)  (новое);
  • Указание списка полей для сортировки в списке товаров  (новое);

Ко многим таблицам каталога есть исходные (тестовые) данные для облегчения начального заполнения каталога.
[/spoiler]

[spoiler title=ФРОНТАЛЬНАЯ ЧАСТЬ]
ФРОНТАЛЬНАЯ ЧАСТЬ

  • SEO-оптимизация каталога (динамическое изменение мета-описания, ключевых слов, заголовка страницы в зависимости от текущего положения в каталоге);
  • формирование пути сайта (pathway);
  • стартовая страница с показом основного содержимого каталога по разделам (категориям), "топовые" товары, новые поступления;
  • просмотр товаров по разделам (категориям); присутствует возможность выбора количества отображаемых товаров, постраничная навигация без обновления всей страницы; фильтрация товаров по категориям, брендам, состояниям (статусам) товаров; сортировка колонок таблицы;
  • показ детальной информации о товаре: Фото, Ключевые характеристики, О товаре, Характеристики, Описание, Отзывы, Заказать товар, Сопутствующие товары, Похожие Товары;
  • сравнение товаров;
  • заказ товара с отправкой уведомления на указанные почт. адреса (в админке можно указывать несколько адресов) с помощью покупательской корзины;
  • расширение (плагин) для SEF-ссылок (человекопонятных), т.е. если имеется ноутбук "Acer Extensa 4620-1A1G12Mi", то формируется ссылка вида "http://www.имя_сайта/acer-extensa-4620-1a1g12mi.html";
  • расширение (плагин) для карты сайта (используется com_xmap >= v.1.1);
  • модуль показа разделов каталога с отображением иконок категорий, списка производителей;
  • модуль сравнения товаров;
  • модуль "Ваша корзина";
  • модуль расширенной фильтрации (сделано 2009-11-18);
  • шаблонизация всех страниц каталога: стартовая страница компонента, список товара, карточка товара;
  • сортировка на странице списка товаров;
  • поддержка многоязычности;
  • управление типом отображения списка товаров: табличный, блочный (div-список);
  • управление показом краткой информации о товаре -- краткое описание или хар-ки товара -- на главной странице каталога и в списке товаров;
  • управление показом закладок в карточке товара (хар-ки, описание, отзывы);
  • показ ценовой политики -- скидок;
  • добавление / удаление товаров в список сравнения и корзину со страницы карточки товара;
  • заказ товаров со страницы карточки товара с возможностью выбора комбинаций (вариаций) товаров на основе атрибутов (указывается в админке);
  • модуль показа производителей с переходом на карточку производителя и списка товаров данного производителя;
  • модуль-слайдер (гориз., верт.) показа товаров: новые, рекомендуемые и т.д.;
  • простой список товаров с вертикальным и горизонтальным шаблонами;
  • простой поиск по названию, описанию и цене;
  • плагин для поиска Joomla;
  • экспорт в прайс-лист;
  • добавление в закладки браузера
[/spoiler]
О новых возможностях Вы можете почитать на демосайте каталога.

@ALL
1. После покупки бесплатно предоставляется:
  • консультации;
  • тех. поддержка;
  • модули и плагины;
  • обновления:
      - исправление найденных ошибок (глюков);
      - новые версии компонента в пределах четвертой цифры билда (т.е. к
         примеру, 1._._.X);

2. На платной основе:
  • улучшения (расширения) функционала как компонента, так и прилагающихся к нему модулей (по договоренности);
  • создание шаблонов каталога по требованию заказчика

Для просмотра работы текущей версии каталога в админке: каталог товаров Joomla 2.5 - админка  [ demo / demo ]
( Чересчур только там не усердствуйте :) )

Для просмотра работы каталога с фронтальной части: каталог товаров Joomla 2.5

Для Joomla версий 2.5.х - 100$.
Для Joomla версий 1.5.х - 10$.
Для Joomla версий 1.0.х - БЕСПЛАТНО!
icq: 358085223

PS: Все стили, которые используются в компоненте и модулях, могут быть изменены в соответствующих файлах *.css.
PPS: Большая просьба не копировать идеи реализации. :)
« Последнее редактирование: 16.01.2015, 20:37:44 от yunoshev »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Каталог товаров yvCommodity Native для Joomla 1.5 бесплатно

Автор yunoshev

Ответов: 6
Просмотров: 5783
Последний ответ 25.09.2016, 10:49:35
от yunoshev
Joomla Advance Shop -- новый взгляд на магазины :)

Автор yunoshev

Ответов: 4
Просмотров: 5550
Последний ответ 28.03.2016, 21:26:37
от yunoshev
Обсуждение каталога товаров yvCommodity для Joomla 1.5.x

Автор yunoshev

Ответов: 116
Просмотров: 45970
Последний ответ 07.10.2015, 11:58:39
от passkal
Портфолио работ на основе каталога yvCommodity

Автор yunoshev

Ответов: 11
Просмотров: 11666
Последний ответ 12.01.2015, 14:39:47
от yunoshev
yvCommodity Products List модуль - как вывести характеристики товара вместо описания?

Автор pH43

Ответов: 3
Просмотров: 4988
Последний ответ 03.06.2014, 17:35:38
от pH43