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

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Дополнительные поля
« : 01.09.2011, 22:37:06 »
Пользовался поиском, ответа на этом форуме нет.

Стандартно, поля отображаются списком такого вида:

Заголовок - инфо
Заголовок - инфо
Заголовок - инфо

Мне надо, чтобы поля отображались таким образом:

Заголовок - инфо I Заголовок - инфо I Заголовок - Инфо

Возможно ли? Спасибо!
*

StarMag

  • Moderator
  • 228
  • 25 / 0
  • после ночи разбора РНР кода
Re: Дополнительные поля
« Ответ #1 : 02.09.2011, 00:08:41 »
В смысле не в столбик а в строчку что-ли?
Ну почему никто никогда не читает справочные материалы?...
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #2 : 02.09.2011, 00:10:51 »
именно
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #3 : 02.09.2011, 00:23:00 »
Ну, классу, который выводит заголовок, пропишите float:left; (Firebug-ом поищите)
Но задачка какая-то... нестандартная.
*

StarMag

  • Moderator
  • 228
  • 25 / 0
  • после ночи разбора РНР кода
Re: Дополнительные поля
« Ответ #4 : 02.09.2011, 00:26:49 »
Нужно править CSS.
Стандартно поля выводятся как ul li, а вам надо сделать просто в строчку.
Файл k2.css
Ну почему никто никогда не читает справочные материалы?...
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #5 : 02.09.2011, 00:41:48 »
Файл k2.css
Только повнимательнее - таких файлов там два. Вам нужен тот, который НЕ в админке :-)
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #6 : 02.09.2011, 15:26:14 »
Я знаю, что это в K2.css. Но не знаю, как это править :)
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #7 : 02.09.2011, 18:25:17 »
ну откуда ж мы, грешные, можем знать, шо у вас в шаблоне творится? Firefox + Firebub подскажут Вам в точности до копейки ;)
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #8 : 02.09.2011, 18:48:23 »
Да что то смотрел там, все упирается в ul li, которые задают команду вывода текста списком.

HTML особо не знаю, но поставить код в нужное место конечно могу. Проблема в том, что кода-то нету :)

*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #9 : 02.09.2011, 18:49:55 »
О! Флоат помог. Спасибо.
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #10 : 02.09.2011, 19:00:41 »
Во как просто всё оказалось, ответ был дан заранее, стоило только покопаться ;)
Там ещё придётся прописать отсутствие картинок в списках - помнится, часа 2 ковырял, пока нашёл!
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #11 : 02.09.2011, 19:28:18 »
:)

Еще в догонку такой вопрос - у меня нестандартный (темный) шаблон, и по центру каждого тэга какая-то дурацкая серая точка. В CSS нигде не прописано O_o

« Последнее редактирование: 02.09.2011, 19:36:09 от GKRU »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #12 : 02.09.2011, 20:45:49 »
Смотри пост выше - видишь, я заранее предвидел этот вопрос! Это картинка списка! Чтобы  "раскосячить" этот момент, я заменил вывод тэгов со списков (ul и li) на обычную заглушку <SPAN>. Не допетришь - пиши, пороюсь в том проекте.

О! Флоат помог. Спасибо.

А спасибу обычно в карму в виде плюсиков ставют. Чем больше - тем лючче!  ;)

ЗЫ
Я ПРОВИДЕ-ЕЕЕЕЦ! (Кипелова слушаю :) )
« Последнее редактирование: 02.09.2011, 20:55:29 от Dorfman »
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #13 : 02.09.2011, 22:55:47 »
Конечно, поставил плюсик :)

Вот что у меня сейчас

div.itemTagsBlock {padding:4px;}
   div.itemTagsBlock span {font-weight:bold;color:#555;padding:0 2px 0 0;}
   div.itemTagsBlock ul.itemTags {list-style:none;padding:0;margin:0;display:inline;}
   div.itemTagsBlock ul.itemTags li {display:inline;list-style:none;padding:0 4px 0 0;margin:0;text-align:center;}
   div.itemTagsBlock ul.itemTags li a {}
   div.itemTagsBlock ul.itemTags li a:hover {}

Кстати, неприятное открытие - модули, которые настроены на показ для всех страниц сайта, в K2 не отображаются? :(
« Последнее редактирование: 02.09.2011, 23:20:39 от GKRU »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #14 : 03.09.2011, 00:01:39 »
Вот что у меня сейчас
Не-а, это в пхп-коде корректироваь надо!
*

GKRU

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Дополнительные поля
« Ответ #15 : 03.09.2011, 14:31:43 »
Да, в item достаточно сменить Ul на span. Спасибо, +
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #16 : 03.09.2011, 18:59:32 »
Кстати, неприятное открытие - модули, которые настроены на показ для всех страниц сайта, в K2 не отображаются? :(

Весьма странно. Но если проблема не решилась "стандартными" средствами - Advanced Module Manager исправит положение.
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Дополнительные поля
« Ответ #17 : 03.09.2011, 21:25:54 »
Чтобы  "раскосячить" этот момент, я заменил вывод тэгов со списков (ul и li) на обычную заглушку <SPAN>.

зачем?

http://htmlbook.ru/css/list-style-type
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дополнительные поля
« Ответ #18 : 03.09.2011, 21:54:14 »
зачем?
А затем, чтобы оставить ul и li в шаблоне такими, какие они у меня задуманы. В статьях. Чтобы не добавлять новые стили для ul-li только для вывода тэгов. Проще в спан обернуть. Да и на фига мне списки, когда моей задачей стоит сделать тэги в строчку?
« Последнее редактирование: 03.09.2011, 21:59:00 от Dorfman »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать http:// из поля формы регистрации и профиля

Автор lgmax

Ответов: 2
Просмотров: 1961
Последний ответ 20.01.2021, 18:52:22
от dizastill
Изменить тип дополнительного поля

Автор Abez

Ответов: 0
Просмотров: 973
Последний ответ 27.11.2019, 11:52:44
от Abez
K2 при добавлении дополнительного поля типа изображение, медиаменеджера нет

Автор designerandrey

Ответов: 0
Просмотров: 856
Последний ответ 16.04.2019, 17:09:22
от designerandrey
Вывести пустые доп поля К2 Joomla 3

Автор face2005

Ответов: 0
Просмотров: 911
Последний ответ 07.03.2019, 13:32:08
от face2005
Falang дополнительные поля К2

Автор face2005

Ответов: 0
Просмотров: 853
Последний ответ 06.03.2019, 13:01:32
от face2005