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

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Есть проблема. Шаблон: Yoo Theme (Core).
Есть необходимость создать разделители главного меню (левого). Так вот, при добавлении разделителей они выглядят как обычный пункт меню (т.е. при наведении курсора "выезжают" влево и меняют цвет), а мне нужно сделать их статическими блоками, чтобы они четко выделялись как подзаголовки меню. Сайт http://tvoytrening.ru/ (ув. модераторы, не сочтите за спам, просто на словах проблема не ясна, в дальнейшем можете удалить ссылку).
Пробовал править CSS, но безрезультатно.
Подскажите, пожалуйста, новичку.
Прикрепляю файл menu.css - посмотрите, пожалуйста, может кто что подскажет.


[вложение удалено Администратором]
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #1 : 10.01.2010, 19:37:14 »
мда, и это форум поддержки?
Форум вроде....но это не значет что ответ на твой вопрос последует...ежеминутно или в тот-же день....
Я допустим прочитал твой пост с утро...но особо не понял что тебе нужно...
Ты бы внятней объяснил...может и остальные не поняли....
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #2 : 10.01.2010, 19:55:38 »
постараюсь внятнее:
нужно сделать разделители в главном меню, чтобы они четко разбивали меню на пункты. Дело в том, что именно в этом шаблоне разделители внешне выглядят так же, как остальные пункты меню (и при наведении на них курсора ведут себя так же как обычные пункты), т.е. все сливается.
А мне нужно, чтобы они бросались в глаза и были статическими (т.е. не менялись при наведении курсора и отличались от пунктов меню).
Не знаю, как это исправить, вот такая проблема...
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #3 : 10.01.2010, 20:11:13 »
Цитировать
разделители внешне
сделайте мне PrtScr разделителя....ну не догоняю я....:)
Может вы имейте ввиду заголовки модулей....? .... если да то они у вас отключены....
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #4 : 10.01.2010, 20:32:11 »
нет, не заголовки модулей
скрин прикрепил
видите, от выглядит как другие пункты, а мне нужно изменить его внешний вид


[вложение удалено Администратором]
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #5 : 10.01.2010, 20:53:55 »
Так Вы имеете в виду бэкраунд пунктов меню...при наведение на них....курсора мышки....или когда они активны...
если вас устроит замена цвета... то попробуйте найти в CSS файлах шаблона вот это
Цитировать
#left div.moduletable_menu li.active, #left div.moduletable_menu li.active:hover {
background-color:
и замените значения указанное для background-color допустим на red; .... тогда точно будет отличаться...
« Последнее редактирование: 10.01.2010, 20:57:52 от zlideni »
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #6 : 10.01.2010, 21:04:38 »
мне нужно, чтобы это выглядело примерно так:


[вложение удалено Администратором]
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #7 : 10.01.2010, 21:23:21 »
Наконец то всё проясняется...
для всех пунктов меню или как......? при всех условиях..(навели на него курсор, на данной странице и.т.д.)....
Нужно почистить CSS и скрипт от шаблона....или же убрать суффикс _menu данного модуля....
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #8 : 10.01.2010, 21:33:41 »
теперь я немного не доганяю ^-^
"Основа тренировки" - это не пункт меню (не ссылка на материал) а разделитель (будет выполнять роль подзаголовка меню)
Он должен выглядеть примерно так, как я в пэйнте нарисовал, а в шаблоне он получается как остальные пункты.
Поэтому именно разделитель "Основа тренировки" мне нужно сделать как на скрине, а остальные пункты должны остаться без изменений
Извиняюсь, если не в тему отвечаю, просто чайник в этом
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #9 : 10.01.2010, 22:02:04 »
Так включите этот разделитель что-бы я его сейчас видел на сайте.....а то сейчас только 6 пунктов меню и никакого разделителя....
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #10 : 10.01.2010, 22:13:35 »
включил
посмотрите, он такой же, как пункты меню, а мне надо как я выкладывал
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #11 : 10.01.2010, 22:35:25 »
Проштудируйте все CSS файлы шаблона....найдите блок в CSS
Цитировать
/* sub and other menu */
после него будут идти около 7 мест где прописаны свойства для
Цитировать
  span.separator
...ты должен их обнулить.... и прописать новые свойства....
Можно не мучиться и не искать а просто прописать новые свойства с пометкой !important но в IE 6 не пройдёт.....
Надеюсь Вы всё поняли.....
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #12 : 10.01.2010, 22:44:44 »
как раз в том файле, что я в первом посте выкладывал прописаны свойства span.separator, но они закреплены как-то и со всеми пунктами меню, поэтому меняются все пункты сразу
посмотрите, пожалуйста, тот файл, может че подскажете
очень надо, заранее спасибо
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #13 : 11.01.2010, 00:51:18 »
Ну я его поковырял не знаю на сколько он тебя устроит....
В следующий раз более внятней попытайся обрисовать проблему + если даёшь ссылку что-бы нам понятней стало о проблеме то не отключай её (проблему)...в нашем случае это разделитель....
Так всё таки это форум поддержки?  ^-^
P.S. Уверен что спасибо заслужил...


[вложение удалено Администратором]
« Последнее редактирование: 11.01.2010, 16:28:01 от zlideni »
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #14 : 11.01.2010, 13:30:02 »
Спасибо конечно, но нужного мне результата добиться не удалось
посмотрите сайт сейчас, я заменил файл menu.css на Ваш, но вот что получилось
в Вашем файле все картинки почему-то получили приставку url(../../../DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/images/topmenu_item_bg.png)
я обрезал и сделал как было, и все равно разделители выглядят неправильно, к тому же страница стала долго обновляться
посмотрите пожалуйста что не так, и спасибо Вам за неравнодушие
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Как сделать красивый разделитель?
« Ответ #15 : 11.01.2010, 13:36:35 »
обновил.... посмотрите возможно ещё что-то нужно будет исправить
« Последнее редактирование: 11.01.2010, 13:48:25 от zlideni »
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #16 : 11.01.2010, 14:07:20 »
ооо, спасибо Вам огромное, это почти то, что мне нужно
единственное: когда в браузере нажимаешь обновить - страница долго очень обновляется, а когда просто по пунктам меню переходишь - все ок. Может это просто глюки на сервере?
И еще: можно, чтобы слово разделитель не "выезжало" влево при наведении мыши, было расположено по центру и обведено в рамочку, как на скриншоте выше?
*

MaJIb4iK

  • Захожу иногда
  • 116
  • 0 / 0
Re: Как сделать красивый разделитель?
« Ответ #17 : 11.01.2010, 16:26:42 »
как-то черезчур ^-^
было красивее
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать логотип в шапке ссылкой

Автор hmaoITN

Ответов: 100
Просмотров: 70249
Последний ответ 08.01.2018, 12:13:04
от galll72
как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 11364
Последний ответ 17.08.2017, 17:24:12
от Intrande
Как сделать резиновой центральную чать сайта?

Автор genkey

Ответов: 8
Просмотров: 5443
Последний ответ 28.05.2016, 10:45:37
от vipiusss
Как сделать меню вконце страницы ?

Автор p4o1

Ответов: 1
Просмотров: 1765
Последний ответ 08.04.2015, 22:46:50
от vipiusss
Как сделать так чтобы из шаблона блога категории заголовок был ссылкой, а в самом материале нет?

Автор wings_fury

Ответов: 0
Просмотров: 1492
Последний ответ 20.03.2015, 11:10:30
от wings_fury