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

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
Нашёл на стороннем форуме

"06.08.2010 12:07

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

сохранил заготовки  может кому пригодится....для базы в utf8

просто делаем sql запрос к базе

 
станции метрополитена  Москва
Код
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Авг 06 2010 г., 05:33
-- Версия сервера: 5.0.91
-- Версия PHP: 5.2.6
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- База данных: `kvcit952_2`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `jos_k2_extra_fields`
--
 
CREATE TABLE IF NOT EXISTS `jos_k2_extra_fields` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `value` text NOT NULL,
  `type` varchar(255) NOT NULL,
  `group` int(11) NOT NULL,
  `published` tinyint(4) NOT NULL,
  `ordering` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `group` (`group`),
  KEY `published` (`published`),
  KEY `ordering` (`ordering`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
 
--
-- Дамп данных таблицы `jos_k2_extra_fields`
--
 
INSERT INTO `jos_k2_extra_fields` (`id`, `name`, `value`, `type`, `group`, `published`, `ordering`) VALUES
(38, 'Станция метро', '[{"name":"Авиамоторная","value":1,"target":null},{"name":"Автозаводская","value":2,"target":null},{"name":"Академическая","value":3,"target":null},{"name":"Александровский сад ","value":4,"target":null},{"name":"Алексеевская","value":5,"target":null},{"name":"Алтуфьево","value":6,"target":null},{"name":"Аннино","value":7,"target":null},{"name":"Арбатская","value":8,"target":null},{"name":"Аэропорт","value":9,"target":null},{"name":"Бабушкинская","value":10,"target":null},{"name":"Багратионовская","value":11,"target":null},{"name":"Баррикадная","value":12,"target":null},{"name":"Бауманская","value":13,"target":null},{"name":"Беговая","value":14,"target":null},{"name":"Белорусская","value":15,"target":null},{"name":"Беляево","value":16,"target":null},{"name":"Бибирево","value":17,"target":null},{"name":"Библиотека имени Ленина","value":18,"target":null},{"name":"Битцевский парк","value":19,"target":null},{"name":"Боровицкая","value":20,"target":null},{"name":"Ботанический сад","value":21,"target":null},{"name":"Братиславская","value":22,"target":null},{"name":"Бульвар Адмирала Ушакова","value":23,"target":null},{"name":"Бульвар Дмитрия Донского","value":24,"target":null},{"name":"Бунинская Аллея","value":25,"target":null},{"name":"ВДНХ","value":26,"target":null},{"name":"Варшавская","value":27,"target":null},{"name":"Владыкино","value":28,"target":null},{"name":"Водный стадион","value":29,"target":null},{"name":"Войковская","value":30,"target":null},{"name":"Волгоградский проспент","value":31,"target":null},{"name":"Волжская","value":32,"target":null},{"name":"Воробьевы горы","value":33,"target":null},{"name":"Выхино","value":34,"target":null},{"name":"Деловой центр","value":35,"target":null},{"name":"Динамо","value":36,"target":null},{"name":"Дмитровская","value":37,"target":null},{"name":"Добрынинская","value":38,"target":null},{"name":"Домодедовская","value":39,"target":null},{"name":"Дубровка","value":40,"target":null},{"name":"Измайловская","value":41,"target":null},{"name":"Калужская","value":42,"target":null},{"name":"Кантемировская","value":43,"target":null},{"name":"Каховская","value":44,"target":null},{"name":"Каширская","value":45,"target":null},{"name":"Киевская","value":46,"target":null},{"name":"Китай-город","value":47,"target":null},{"name":"Кожуховская","value":48,"target":null},{"name":"Коломенская","value":49,"target":null},{"name":"Комсомольская","value":50,"target":null},{"name":"Коньково","value":51,"target":null},{"name":"Красногвардейская","value":52,"target":null},{"name":"Краснопресненская","value":53,"target":null},{"name":"Красносельская","value":54,"target":null},{"name":"Красные ворота","value":55,"target":null},{"name":"Крестьянская застава","value":56,"target":null},{"name":"Кропоткинская","value":57,"target":null},{"name":"Крылатское","value":58,"target":null},{"name":"Кузнецкий мост","value":59,"target":null},{"name":"Кузьминки","value":60,"target":null},{"name":"Кунцевская","value":61,"target":null},{"name":"Курская","value":62,"target":null},{"name":"Кутузовская","value":63,"target":null},{"name":"Ленинский проспект","value":64,"target":null},{"name":"Лубянка","value":65,"target":null},{"name":"Люблино","value":66,"target":null},{"name":"Марксистская","value":67,"target":null},{"name":"Марьино","value":68,"target":null},{"name":"Маяковская","value":69,"target":null},{"name":"Медведково","value":70,"target":null},{"name":"Международная","value":71,"target":null},{"name":"Менделеевская","value":72,"target":null},{"name":"Митино","value":73,"target":null},{"name":"Молодежная","value":74,"target":null},{"name":"Нагатинская","value":75,"target":null},{"name":"Нагорная","value":76,"target":null},{"name":"Нахимовский проспект","value":77,"target":null},{"name":"Новогиреево","value":78,"target":null},{"name":"Новокузнецкая","value":79,"target":null},{"name":"Новослободская","value":80,"target":null},{"name":"Новые черемушки","value":81,"target":null},{"name":"Октябрьская","value":82,"target":null},{"name":"Октябрьское поле","value":83,"target":null},{"name":"Орехово","value":84,"target":null},{"name":"Отрадное","value":85,"target":null},{"name":"Охотный ряд","value":86,"target":null},{"name":"Павелецкая","value":87,"target":null},{"name":"Парк культуры","value":88,"target":null},{"name":"Парк победы","value":89,"target":null},{"name":"Партизанская (Измайловский парк)","value":90,"target":null},{"name":"Первомайская","value":91,"target":null},{"name":"Перово","value":92,"target":null},{"name":"Петровско-Разумовская","value":93,"target":null},{"name":"Печатники","value":94,"target":null},{"name":"Пионерская","value":95,"target":null},{"name":"Планерная","value":96,"target":null},{"name":"Площадь Ильича","value":97,"target":null},{"name":"Площадь революции","value":98,"target":null},{"name":"Полежаевская","value":99,"target":null},{"name":"Полянка","value":100,"target":null},{"name":"Пражская","value":101,"target":null},{"name":"Преображенская площадь","value":102,"target":null},{"name":"Пролетарская","value":103,"target":null},{"name":"Проспект Вернадского","value":104,"target":null},{"name":"Проспект мира","value":105,"target":null},{"name":"Профсоюзная","value":106,"target":null},{"name":"Пушкинская","value":107,"target":null},{"name":"Речной вокзал","value":108,"target":null},{"name":"Рижская","value":109,"target":null},{"name":"Римская","value":110,"target":null},{"name":"Рязанский проспект","value":111,"target":null},{"name":"Савеловская","value":112,"target":null},{"name":"Свиблово","value":113,"target":null},{"name":"Севастопольская","value":114,"target":null},{"name":"Семеновская","value":115,"target":null},{"name":"Серпуховская","value":116,"target":null},{"name":"Смоленская","value":117,"target":null},{"name":"Сокол","value":118,"target":null},{"name":"Сокольники","value":119,"target":null},{"name":"Спортивная","value":120,"target":null},{"name":"Студенческая","value":121,"target":null},{"name":"Сухаревская","value":122,"target":null},{"name":"Сходненская","value":123,"target":null},{"name":"Таганская","value":124,"target":null},{"name":"Тверская","value":125,"target":null},{"name":"Театральная","value":126,"target":null},{"name":"Текстильщики","value":127,"target":null},{"name":"Теплый стан","value":128,"target":null},{"name":"Тимирязевская","value":129,"target":null},{"name":"Третьековская","value":130,"target":null},{"name":"Трубная","value":131,"target":null},{"name":"Тульская","value":132,"target":null},{"name":"Тургеневская","value":133,"target":null},{"name":"Тушинская","value":134,"target":null},{"name":"Улица 1905 года","value":135,"target":null},{"name":"Улица Академика Янгеля","value":136,"target":null},{"name":"Улица Горчакова","value":137,"target":null},{"name":"Улица Подбельского","value":138,"target":null},{"name":"Улица Скобелевская","value":139,"target":null},{"name":"Улица Старокачаловская","value":140,"target":null},{"name":"Университет","value":141,"target":null},{"name":"Филевский парк","value":142,"target":null},{"name":"Фили","value":143,"target":null},{"name":"Фрунзенская","value":144,"target":null},{"name":"Царицино","value":145,"target":null},{"name":"Цветной бульвар","value":146,"target":null},{"name":"Черкизовская","value":147,"target":null},{"name":"Чертановская","value":148,"target":null},{"name":"Чеховская","value":149,"target":null},{"name":"Чистые пруды","value":150,"target":null},{"name":"Чкаловская","value":151,"target":null},{"name":"Шабловская","value":152,"target":null},{"name":"Шоссе Энтузиастов","value":153,"target":null},{"name":"Щелковская","value":154,"target":null},{"name":"Щукинская","value":155,"target":null},{"name":"Электрозаводская","value":156,"target":null},{"name":"Юго-Западная","value":157,"target":null},{"name":"Южная","value":158,"target":null},{"name":"Ясенево","value":159,"target":null},{"name":"Станция монорельса Тимирязевская","value":160,"target":null},{"name":"Станция монорельса Ул. Милашенкова","value":161,"target":null},{"name":"Станция монорельса Телецентр","value":162,"target":null},{"name":"Станция монорельса Ул. академика Королева","value":163,"target":null},{"name":"Станция монорельса Выставочный центр","value":164,"target":null},{"name":"Станция монорельса Улица Сергея Эйзенштейна","value":165,"target":null}]', 'select', 1, 1, 1);


Города Подмосковья
Код
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Авг 06 2010 г., 05:55
-- Версия сервера: 5.0.91
-- Версия PHP: 5.2.6
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- База данных: `kvcit952_2`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `jos_k2_extra_fields`
--
 
CREATE TABLE IF NOT EXISTS `jos_k2_extra_fields` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `value` text NOT NULL,
  `type` varchar(255) NOT NULL,
  `group` int(11) NOT NULL,
  `published` tinyint(4) NOT NULL,
  `ordering` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `group` (`group`),
  KEY `published` (`published`),
  KEY `ordering` (`ordering`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=48 ;
 
--
-- Дамп данных таблицы `jos_k2_extra_fields`
--
 
INSERT INTO `jos_k2_extra_fields` (`id`, `name`, `value`, `type`, `group`, `published`, `ordering`) VALUES
(27, 'Город', '[{"name":"Апрелевка","value":1,"target":null},{"name":"Балашиха","value":2,"target":null},{"name":"Бронницы","value":3,"target":null},{"name":"Верея","value":4,"target":null},{"name":"Видное","value":5,"target":null},{"name":"Волоколамск","value":6,"target":null},{"name":"Воскресенск","value":7,"target":null},{"name":"Высоковск","value":8,"target":null},{"name":"Голицыно","value":9,"target":null},{"name":"Дедовск","value":10,"target":null},{"name":"Дзержинский","value":11,"target":null},{"name":"Дмитров","value":12,"target":null},{"name":"Долгопрудный","value":13,"target":null},{"name":"Домодедово","value":14,"target":null},{"name":"Дрезна","value":15,"target":null},{"name":"Дубна","value":16,"target":null},{"name":"Егорьевск","value":17,"target":null},{"name":"Железнодорожный","value":18,"target":null},{"name":"Жуковский","value":19,"target":null},{"name":"Зарайск","value":20,"target":null},{"name":"Звенигород","value":21,"target":null},{"name":"Ивантеевка","value":22,"target":null},{"name":"Истра","value":23,"target":null},{"name":"Кашира","value":24,"target":null},{"name":"Климовск","value":25,"target":null},{"name":"Клин","value":26,"target":null},{"name":"Коломна","value":27,"target":null},{"name":"Королёв","value":28,"target":null},{"name":"Котельники","value":29,"target":null},{"name":"Красноармейск","value":30,"target":null},{"name":"Красногорск","value":31,"target":null},{"name":"Краснозаводск","value":32,"target":null},{"name":"Краснознаменск","value":33,"target":null},{"name":"Кубинка","value":34,"target":null},{"name":"Куровское","value":35,"target":null},{"name":"Лобня","value":36,"target":null},{"name":"Луховицы","value":37,"target":null},{"name":"Лыткарино","value":38,"target":null},{"name":"Люберцы","value":39,"target":null},{"name":"Можайск","value":40,"target":null},{"name":"Московский","value":41,"target":null},{"name":"Мытищи","value":42,"target":null},{"name":"Наро-Фоминск","value":43,"target":null},{"name":"Ногинск","value":44,"target":null},{"name":"Одинцово","value":45,"target":null},{"name":"Ожерелье","value":46,"target":null},{"name":"Озёры","value":47,"target":null},{"name":"Орехово-Зуево","value":48,"target":null},{"name":"Павловский Посад","value":49,"target":null},{"name":"Пересвет","value":50,"target":null},{"name":"Подольск","value":51,"target":null},{"name":"Протвино","value":52,"target":null},{"name":"Пушкино","value":53,"target":null},{"name":"Пущино","value":54,"target":null},{"name":"Раменское","value":55,"target":null},{"name":"Реутов","value":56,"target":null},{"name":"Рошаль","value":57,"target":null},{"name":"Руза","value":58,"target":null},{"name":"Сергиев Посад","value":59,"target":null},{"name":"Серпухов","value":60,"target":null},{"name":"Солнечногорск","value":61,"target":null},{"name":"Старая Купавна","value":62,"target":null},{"name":"Ступино","value":63,"target":null},{"name":"Талдом","value":64,"target":null},{"name":"Троицк","value":65,"target":null},{"name":"Фрязино","value":66,"target":null},{"name":"Химки","value":67,"target":null},{"name":"Хотьково","value":68,"target":null},{"name":"Черноголовка","value":69,"target":null},{"name":"Чехов","value":70,"target":null},{"name":"Шатура","value":71,"target":null},{"name":"Щербинка","value":72,"target":null},{"name":"Щёлково","value":73,"target":null},{"name":"Электрогорск","value":74,"target":null},{"name":"Электросталь","value":75,"target":null},{"name":"Электроугли","value":76,"target":null},{"name":"Юбилейный","value":77,"target":null},{"name":"Яхрома","value":78,"target":null}]', 'select', 11, 1, 1);

Смотрю....
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Режим каталога при создании страницы тега в меню.

Автор recived

Ответов: 0
Просмотров: 1136
Последний ответ 24.03.2018, 09:41:33
от recived
Вывести extraField в category.php

Автор ViralL

Ответов: 0
Просмотров: 871
Последний ответ 10.01.2016, 02:29:39
от ViralL
Структура каталога К2

Автор Quixotic

Ответов: 2
Просмотров: 921
Последний ответ 06.04.2015, 14:49:26
от Quixotic
Нужен совет в оптимизации быстродействия сайта-каталога на К2 + K2 Filter & Search module

Автор Artus84

Ответов: 0
Просмотров: 1023
Последний ответ 14.03.2015, 12:25:07
от Artus84
Два каталога на одном сайте

Автор Vadim7423

Ответов: 0
Просмотров: 871
Последний ответ 14.01.2015, 07:19:03
от Vadim7423