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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Разработчики Joomla сообщили, что компания Microsoft начала участвовать в разработке проекта. Первые порции предоставленного Microsoft кода уже интегрированы в экспериментальную ветку Joomla 1.6. Код передан под лицензией GPL, при этом Microsoft на общих основаниях подписала соглашение Joomla! Contributor Agreement (JCA), подразумевающее безвозмездную передачу сообществу Joomla всех прав на предоставляемые проекту исходные тексты.

Источник: Microsoft signs the Joomla! Contributor Agreement
*

Guran

  • Захожу иногда
  • 329
  • 22 / 0
И что это означает? Надо теперь переходить на Windows-сервера?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
С какой стати? Просто они представили какой-то кусок кода, безвозмездно... т.е. даром... ну и плюс договорились о сотрудничестве в области тестирования Joomla на IIS и там типа помощь в области совместимости с IIS. Вот как-то так...

А поддержка, она и так была. Я знаю с десяток сайтов, которые крутятся на IIS, просто там далеко не все можно сделать так же быстро, как на Apache (ну в основном там танцы с бубном по поводу SEF, ибо бесплатные аналоги mod_rewrite несколько убоги)
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
хех это конечно круто.
С каких это пор Microsoft подписалось под GPL?
Предоставят шаблон, который более или менее будет работать в их браузере (шутка :) )
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
Лишь бы Joomla не стала платной от мелкософта ;D
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Это как бы исключено, Joomla была выпущена под лицензией GPL и никуда от нее уже не денется...
*

Guran

  • Захожу иногда
  • 329
  • 22 / 0
Предоставят шаблон, который более или менее будет работать в их браузере (шутка :) )

А этот вопрос вовсе не шуточный, ведь из-за шаблонов Joomla падает популярность их браузера. Так что, можно сказать, они поздно спохватились с поддержкой. Но лучше поздно, чем никогда...
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
А этот вопрос вовсе не шуточный, ведь из-за шаблонов Joomla падает популярность их браузера. Так что, можно сказать, они поздно спохватились с поддержкой. Но лучше поздно, чем никогда...
жесть  :laugh:
именно из-за шаблонов и падает их популярность. Обеднеют бедалашки на пару лям :)
*

Guran

  • Захожу иногда
  • 329
  • 22 / 0
жесть  :laugh:
именно из-за шаблонов и падает их популярность. Обеднеют бедалашки на пару лям :)

Ну а как иначе объяснить их поведение? Надеются, что разработчики шаблонов для сайтов Joomla сжалятся, будут их делать совместимыми с их браузером.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
+1 особенно в свете html5 (для ИЕ еще кучу костылей клепать((( )
причем здесь html5 и т.д.
Ну был там у них код какой-то, который судя по всему им не пригодился, передали молодцы. Может дальше чего напишут, будет еще лучше.
Что в этом плохого?
По поводу браузеров и т.д. это отдельная тема и к данной теме, мне кажется, она будет не уместна.
Есть стандарты, которым придерживаются все браузеры, и я не думаю что они там будут чего-то мудрить именно под свою лошадку и что у них это пройдет.
*

Guran

  • Захожу иногда
  • 329
  • 22 / 0
Блин... видимо разрушу детское сознание... Как бы вот верстальщики и убивают больше всего времени на совместимость именно шаблонов с ИЕ, особенно с 6 версией.

Я лично у себя на сайтах в последнее время стал ставить красивые шаблоны без совместимости с IE. Посетителям объявил, чтобы переходили на Оперу.
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
Учитывая, что Оперы в мире пара процентов, я сомневаюсь, чтобы забугорники вообще тестировали свои шаблоны на совместимость с ней.
А вообще Мелкомягкие уже давно ведут себя всё лучше и правильнее, и отношение к ним улучшается.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Не очень хорошая новость, имхо. Уж лучше бы со Стивом Джобсом договорились...
А что плохого-то, Жень? По факту это и неплохая реклама, и, думаю будет польза с точки зрения повышения совместимости с IIS... А насчет Джобса, почитай первоисточник, они там пишут, что среди них много маководов: «with a lot of us being Mac users, IIS testing isn't the first thing that comes to mind or the easiest thing to do», так что я думаю в этом плане там тесты проводятся. В общем я вреда не вижу... Тем более, насколько я понял, они сами не напрашивались, им предложили, а они не стали отказываться (что мне кажется разумным).
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
почитал оригинал и каменты. От майкрософта дают обработчик кеша для IIS — WinCache.
В комментариях народ обсуждает возможность (странно, что сам об этом не подумал) написания драйвера БД для MS SQL Server. Это бы здорово повысило привлекательность Joomla на win-платформах.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
В комментариях народ обсуждает возможность (странно, что сам об этом не подумал) написания драйвера БД для MS SQL Server
сам по себе драйвер написать-то непроблема, вопрос в том, что далеко не все запросы будут совместимы с MS SQL, ну, к примеру, насколько я помню, там нет такой штуки как GROUP_CONCAT... в общем появление поддержки MS SQL на уровне ядра отнюдь не означает, что будут работать сторонние расширения...
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
кстати если мне память не изменяет мелкомягкие являются одной из крупнейших компаний в мире которая разрабатывает опенсурс софт... если подумать то большая часть разработок опенсурс это вклад разработчиков платного и закрытого софта... в тот же линух от майкрософт вносится не хилое количество кода. Так что говорить, что плохо то что майкрософт внесла свое в CMS, это как то не разумно.

По мне так это говорит о зрелости и популярности систему раз крупные компании заинтересованы в ее развитии.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
в тот же линух от майкрософт вносится не хилое количество кода.
на сколько я помню - нет такого линуха. Есть стратегический партнёр в плане линукса - Novell (SuSe и OpenSuSe Linux) и есть два отдела в этих конторах, которые работают в плане совместимости. Думаю это большая разница
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Саш, а ведь Microsoft действительно предоставляла какие-то драйвера, вот например: Microsoft Releases Linux Device Drivers As GPL
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
на сколько я помню - нет такого линуха. Есть стратегический партнёр в плане линукса - Novell (SuSe и OpenSuSe Linux) и есть два отдела в этих конторах, которые работают в плане совместимости. Думаю это большая разница
Вы путаете дистрибутив линукса... и ядро... на сколько я помню из истории все компании более менее нормальные вносили свою лепту в разработку ядра...
Дело даже не в том что кто-то воспринимает линукс как конкурента... я думаю что его пока ни кто не воспринимает таковым.
А дело в том что любой  крупный бизнес идет на встречу клиенту. Во всяком случае по большому счету.

Под одеялом там могут пихаться и пинаться. А на людях мелкософт будет всегда поддерживать линукс и прочие разработки по одной постой причине... Если клиенту надо какую то приблуду уж лучше она будет идти от майкрософт. Чем от безымянного Васи пупкина. Имхо потому, что клиент о котором заботятся обратится еще раз. И за все убытки связанные с опенсурс заплатит в двойне.

По той же причине не понятная истерия по поводу mySQL и оракл. И еще куча примеров есть.

Так что для Joomla это однозначно добро. Даже если майкрософт преследует цель пересадить пользователей Joomla на виндоуз сервера. Что тут плохого?? Апач не самый лучший вебсервер в мире. :-)
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
У MS в IIS есть интересный кешей, вот его поддержку еще и планируется внедрить в Joomla 1.6. Плюс у MS есть волшебная веб-платформа, которая умеет в один клик ставить веб-приложения и преднастраивать систему под них, вот это тоже как понимаю в рамках сотрудничества будет сделано.

Ну и самый большой плюс как мне кажется - это сам факт признания системы. Обязаностей не думаю что у Joomla-компании прибавится, а вот рекламный и качественный профит - будет.
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 4.2: несколько доменов

Автор darkknight

Ответов: 4
Просмотров: 4497
Последний ответ 31.08.2020, 20:43:03
от darkknight
Разработчики Joomla сообщили об утечке данных

Автор SmiP

Ответов: 1
Просмотров: 3044
Последний ответ 01.06.2020, 13:25:40
от draff
Telegram каналы о Joomla

Автор Sulpher

Ответов: 4
Просмотров: 4494
Последний ответ 07.11.2018, 12:16:36
от Sulpher
Joomla лучшая CMS в 2017 по версии CMS Critic Awards

Автор zikkuratvk

Ответов: 9
Просмотров: 3986
Последний ответ 07.11.2017, 20:21:10
от Sulpher
Joomla 3.6

Автор hamelion

Ответов: 1
Просмотров: 3850
Последний ответ 13.07.2016, 02:17:53
от FitMe