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

sm_denis

  • Захожу иногда
  • 441
  • 36 / 2
Кому он нужен - форк JBZoo
« : 13.05.2012, 19:23:58 »
JBZoo однозначно - http://joomla-book.ru/projects/jbzoo/download-jbzoo#files

Вот что на нем можно сделать - http://jbzoo.joomla-book.ru/ (отечественный продукт =) )

Цитировать
1. Необходимо создать каталог организаций, с возможностью добавления зарегистрированными пользователями своих компаний.
В Zoo можно сохранять и редактировать материалы прямо с фронтэнда. Для организаций есть такой пример - http://jbzoo.joomla-book.ru/spravochnik

Цитировать
2. Возможность создания в каждой категории своих полей.
С этим сложнее, но у категорий уже есть дополнительные поля вроде анонса, маленькой и большой картинки, заголовков итд

Цитировать
3. Возможность вывести в боковое меню любые фильтры по полям.
Фильтры это одна из самых больших фич JBZoo. Можно увидеть тут
http://jbzoo.joomla-book.ru/ - форма и аккордеон слева, небольшой фильтр сверху
http://jbzoo.joomla-book.ru/spravochnik - небольшой фильтр слева по произвольным полям
http://jbzoo.joomla-book.ru/blog - еще один фильтр
Искать можно практически по всем полям. В настройках задается как выводить поля в форме фильтра
Все сводится к кликанию мышки ;)

Цитировать
4. Карта.
5. фотогалерея.
http://jbzoo.joomla-book.ru/spravochnik/item/%D0%BF%D0%B8%D0%BD%D0%BE%D0%BA%D0%B8%D0%BE?category_id=131 (внизу и то и другое)

Цитировать
6. Рейтиг и комментарии.
например так
http://jbzoo.joomla-book.ru/produktovyj-katalog/sistemnye-bloki/item/usn-business-305#comment-36

Цитировать
7. Хорошее быстродействие.
http://jbzoo.joomla-book.ru/table - РЕАЛЬНЫЕ 10 000 материалов в каталоге.
Никакого кеширования. Заметны конечно тормоза, но учтите что для каждого пункта слева и в фильтре рассчитывается количество материалов.

+ есть тех поддержка для всех владельцев приложения.
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Кому он нужен - форк JBZoo
« Ответ #1 : 13.05.2012, 19:29:49 »
sm_denis - кстати ради интереса сколько людей сейчас проект поддерживают?
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

sm_denis

  • Захожу иногда
  • 441
  • 36 / 2
Кому он нужен - форк JBZoo
« Ответ #2 : 13.05.2012, 23:00:47 »
sm_denis - кстати ради интереса сколько людей сейчас проект поддерживают?

Два.
Я - основной код, тех поддержка, развитие, иногда пиар.
Екатерина - тестирование, документация, верстка, иногда тех поддержка и пиар.

Был третий, но он больше не с нами =(
*

oppo

  • Захожу иногда
  • 365
  • 82 / 8
  • ΨΨΨ я - УКРАЇНЕЦЬ
Кому он нужен - форк JBZoo
« Ответ #3 : 11.06.2012, 17:12:27 »
7. Хорошее быстродействие.
http://jbzoo.joomla-book.ru/table - РЕАЛЬНЫЕ 10 000 материалов в каталоге.
Никакого кеширования. Заметны конечно тормоза, но учтите что для каждого пункта слева и в фильтре рассчитывается количество материалов.
тормоза заметны приличные , а *рассчитывается количество материалов. * отключается индивидуально ?
*

sm_denis

  • Захожу иногда
  • 441
  • 36 / 2
Кому он нужен - форк JBZoo
« Ответ #4 : 29.06.2012, 22:47:13 »
тормоза заметны приличные , а *рассчитывается количество материалов. * отключается индивидуально ?
Я так не считаю, т.к на этой странице делаются довольно большое кол-во выборок без всякого кеширования.
Вы просто прикиньте, что кол-во считается для каждой ссылки, по  каждому критерию.
И прикиньте сколько ссылок на странице и умножьте на кол-во элементов в каталоге.
докинем сюда, что для каждого элемента проверяются права (+ права на каждое поле), даты публикации, статусы.
Если отключить не нужные фичи, будет очень даже быстро работать.
А с кешем - вообще летает =)

Сможете сделать чтобы работало быстрее? да еще и с произвольным фильтром, который накликивается мышкой ;)... сомневаюсь =)

Подсчет кол-ва материалов можно отключить - есть такая "галочка" в настройках.
*

Rmilovidov

  • Захожу иногда
  • 110
  • 1 / 0
  • Работаю на себя
Кому он нужен - форк JBZoo
« Ответ #5 : 14.07.2012, 12:41:40 »
Понравился каталог, в принципе,  готов купить.

вопросы:

1.Корзину для покупки (заказа товара) как-нибудь реализовать можно?
т.е будет автосайт с каталогом товаров. Возможен заказ через форму заказа, или непосредственно через корзину.

2.Нужны ссылки на элементы каталога из статейной части (которую, кстати, как я понял можно тоже реализовать с помощью компонента). т.е человек читает  статью про свечи и внизу странички видит некоторый  перечень  свечей зажигания.


Заранее спасибо!
*

sm_denis

  • Захожу иногда
  • 441
  • 36 / 2
Кому он нужен - форк JBZoo
« Ответ #6 : 16.07.2012, 00:15:58 »
To Rmilovidov
1. Корзины пока нет, но работа над ней уже идет.
2. Есть связанные элементы, которые выбираются вручную. Либо можно использовать автоматическую связку, которая выбирает статьи по ключевым словам, тегам итд
*

Roamer

  • Захожу иногда
  • 150
  • 3 / 0
Кому он нужен - форк JBZoo
« Ответ #7 : 28.03.2013, 16:46:59 »
Денис, такое можно реализовать? http://joomlaforum.ru/index.php/topic,259057.0.html
*

Roamer

  • Захожу иногда
  • 150
  • 3 / 0
Re: Кому он нужен - форк JBZoo
« Ответ #8 : 29.03.2013, 18:22:52 »
Вчера переговорил с автором. Купил. Сегодня весь полдня ломал голову и читал документацию, к вечеру нашло озарение... Теперь сижу и наслаждаюсь. Денис! Огромное спасибо, очень все грамотно сделано!

Модерам - переименуйте тему. Это не Форк, это приложение для Zoo. Сам каталог Zoo не изменялся.
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: Кому он нужен - форк JBZoo
« Ответ #9 : 29.03.2013, 20:16:25 »
Спасибо за рекомендацию. Изучаем матчасть:

=========== Wikipedia  =========================
Fork (software development)

In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct piece of software. The term often implies not merely a development branch, but a split in the developer community.

Форк (разработки програмного обеспечения)

В инженерии програмного обеспечения форки происходят, когда разработчики берут копию исходного кода из одного пакета [определенного] программного приложения и начинают на ней [свои собственные] независимые разработки, создавая отличительный объект програмного обеспечения. Этот термин часто означает не только ответвление разработки, но и разделение в самом сообществе разработчика.

============================================

Не вижу проблем с названием темы.

Желаю удачи разработчикам JBZoo и его покупателям, но внесем ясность, что по самым тривиальным причинам форки - явление преходящее, которое со временем в лучшем случае матаморфируется в ничего общего не имеющее с оригиналом веб приложение, в худшем случае - прекращает существовать.

Реальность мира расширений системы Joomla состоит в том, что за исключением буквально нескольких зашифрованных расширений, все расширения, будь они платны или бесплатны, находят своих последователей только если они живут на JED, будучи нацелены на международное сообщество. В случае с JBZoo об этом, как ни печально, не приходится и мечтать.  Это - о коммерческой целесообразности проекта.

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

В итоге, что мы имеем с гуся? Чисто русский экспериментальный продукт, расчитанный принести его, без сомнения, талантливым авторам, несколько баксов тут и там. И это в то время, как на JED набирают своих поклонников и репутацию расширения и их команды абсолютно таких же талантливых, но более открытых сотрудничеству с сообществом, русских разработчиков.
« Последнее редактирование: 29.03.2013, 23:23:52 от AlexSmirnov »
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Aponte

  • Захожу иногда
  • 122
  • 3 / 3
Re: Кому он нужен - форк JBZoo
« Ответ #10 : 03.04.2013, 14:48:58 »
Думаю что JBZoo только стартует на платформе ZOO, и постепенно перерастет в отдельное расширение
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: Кому он нужен - форк JBZoo
« Ответ #11 : 03.04.2013, 16:14:43 »
...постепенно перерастет в отдельное расширение

Если такое собственное расширение появится и появится на JED, это будет отлично для всех. Разработчики выйдут на международный рынок, где число промоутинговых и продажных каналов фактически неограничено. Конечные потребители получат более широкий выбор  каталогов. Сказка наяву ;)
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужен совет по SP Page Builder

Автор Lemonez

Ответов: 0
Просмотров: 2948
Последний ответ 02.09.2020, 05:02:13
от Lemonez
Альтернативы JBzoo [Варианты]

Автор Max-2012

Ответов: 6
Просмотров: 3791
Последний ответ 01.04.2019, 23:07:22
от Max-2012
Нужен ли CCK для Joomla 3.4 ?!

Автор FitMe

Ответов: 2
Просмотров: 1700
Последний ответ 29.06.2015, 08:58:28
от SeBun
Seo Glossary нужен алфавит на русском

Автор robotwerder

Ответов: 0
Просмотров: 1505
Последний ответ 31.03.2015, 19:14:11
от robotwerder
Нужен совет в выборе каталога

Автор Teng

Ответов: 3
Просмотров: 2171
Последний ответ 07.03.2012, 13:42:05
от Teng