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

Andru

  • Захожу иногда
  • 83
  • 0 / 0
  • I am a brain!
Приветствую...У меня почему то контент в две колонке отображается...
У меня там 4-е таблицы... Первую все нормально отображалось...Ну я сразу вставил код для всех оставшихся таблиц...и получил вот такой результат... В настройках статьи нет параметров про колонки...

http://raduga.vsemweb.ru/tseny.html

Странно...если вводить код постепенно (и сохранять) для каждого контента...то все в порядке...
« Последнее редактирование: 05.10.2015, 16:19:39 от Andru »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Возможно перебиваете какие-то теги спойлером.
*

stavra444

  • Новичок
  • 3
  • 0 / 0
помогите настроить SJ Grid Slider for K2
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Все что угодно перепробовал но на Версии Joomla 3 3 6 не хочет работать хоть убей. Фаирбаг чист - на фронете просто пишет текст мпойлера  а не сам спойлер (((((((
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Это значит либо плагин отключен, либо то поле, куда вы пишете код спойлера, не обрабатывается плагинами типа content.
*

tkav

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Давно не смотрел у себя как работает, и понадобилось дополнить раздел. У меня вопросы-ответы сделаны спойлерами, удобно.
НО! почему-то перестал работать как надо.
При наведении и нажатию мышью на спойлер - он открывается и тут же закрывается.
Пробовал все режимы - и по нажатию, и по наведению, и по url - результат одинаковый, как я уже написал. Эксперименты с задержками тоже не помогли. Даже скачал заново и переустановил плагин, но всё равно пофигу.
Как исправить ситуацию?
вот где это:
Спойлер
[свернуть]
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
У вас что-то с мышкой. У меня работает как надо.
*

tkav

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
У вас что-то с мышкой. У меня работает как надо.
Оно как-то странно - работает один раз из 10. Если просто пообновлять страницу или походить по меню, - то работает, то не работает. Не могу поймать зависимость...
*

tkav

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Оно как-то странно - работает один раз из 10. Если просто пообновлять страницу или походить по меню, - то работает, то не работает. Не могу поймать зависимость...

Короче нашел проблему. Представляете - виноват "прогрессивный кеш". Отключил кеш - все заработало. Это Joomla 3.4.5
Может кому пригодится мой опыт. Спасибо за поддержку.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
"прогрессивный кеш" много где мешает, его лучше не использовать.
*

Arturs2006

  • Осваиваюсь на форуме
  • 36
  • 0 / 1
Скажите, а подгрузка видеороликов тоже происходит только после нажатия на слайдер? Потому что я пробовал устанавливать данный плагин и скрывать под спойлерами видео - содержимое спойлеров подгружалось сразу после захода на страничку.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

Arturs2006

  • Осваиваюсь на форуме
  • 36
  • 0 / 1
Может подскажете тогда какое-нибудь готовое решение данной задачи, чтобы подгрузка содержимого слайдера шла после нажатия на него? В сети находил плагины разные, но они к Joomla 3.x не подходили.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я что-то подобное видел, но очень давно и, кажется, на 2.5 если не на 1.5.
*

MrAlexSid

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
А спойлер в спойлере не делает?
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
 C наступающим!

 Вставляю в спойлер плеер:

Код
{spoiler title=Спойлер opened=0}
[hdplay videoid=6 width=640 height=360]
{/spoiler}

Получаю такой вывод:
Код
<embed src="#spoiler" data-src="http://beer-new/index.php?option=com_hdflvplayer&task=player&playid=&id=6" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" wmode="opaque" flashvars="baserefJ=http://beer-new&autoplay=false&showPlaylist=" width="640" height="360">

А надо иметь такой:
Код
<embed src="http://beer-new/index.php?option=com_hdflvplayer&task=player&playid=&id=6" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" wmode="opaque" flashvars="baserefJ=http://beer-new&autoplay=false&showPlaylist=" width="640" height="360">

*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Было так:
HD FLV Player
[еще штук 5 плагинов]
Content - LVSpoiler

Сделал так:
Content - LVSpoiler
HD FLV Player

Заработало!

Я п хрендогадался ....
*

bitumk

  • Новичок
  • 2
  • 0 / 0
Друзья, помогите, пожалуйста:

На главной есть кнопка, ведущая на страницу со спойлерами. Спойлеры свёрнуты, если просто открыть страницу.

А можно сформировать ссылку для той страницы, обратившись сразу к любому спойлеру, чтобы открылась страница, встала в позицию спойлера и раскрыла его?

Спасибо.
« Последнее редактирование: 12.02.2016, 08:18:06 от bitumk »
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Поставь анкор и:
{spoiler title=Открытый opened=1}
*

bitumk

  • Новичок
  • 2
  • 0 / 0
Beer
Анкор - это интересно, еще не знаю что такое, буду изучать.

А вот сделать блок сразу открытым... не получится. Они все должны быть закрыты. И открываться по мере обращения к ним.

Например, один раз к одному блоку идем - он должен быть открыт, в другой раз к другому блоку.

Так возможно? Если в чем-то другом, посоветуйте пожалуйста? ПХП не советуйте, это понятное дело поможет.

Просто если это уже решено кем-то, готов с радостью применить.
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
 bitumk, я же выше написал тебе, как получить один открытый спойлер среди остальных закрытых и как перейти именно к нему.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Beer, ну так это не решает проблемы с автооткрытием )
человек хочет чтобы с разных ссылок были разные спойлеры открыты на странице.
на сколько я понимаю, такого функционала тут нет
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
 Слишком вольное изложение задачи - если просто открыть страницу А как ее еще можно открыть?

 В таком случае можно сделать несколько страниц (даже в одном материале), на них открыть необходимые спойлеры с анкором, и давать разные ссылки в зависимости от задачи.

 Тут же не говорится про разные спойлеры для разных IP
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да это в бутрстраповском спойлере есть, по-моему. часто встречается фича.
просто по якорю открывает нужный спойлер без всяких извратов
*

evgeniy3200

  • Новичок
  • 1
  • 0 / 0
Доброго дня!

Подскажите как можно отключить эффекты анимации на данном плагине? чтобы по нажатию на спойлер он открывался и закрывался без задержек и сразу?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Такой возможности в плагине нет, если вы сильны в js, залезьте в скрипт, переделайте как вам надо.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я не помню есть-ли у нас такой параметр. Видимо нет, раз человек спрашивает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин "Русская типографика"

Автор Physicist

Ответов: 261
Просмотров: 156140
Последний ответ 13.03.2025, 20:06:50
от Olg
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 1279
Последний ответ 27.08.2024, 15:39:37
от kkmspb
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 22639
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 127799
Последний ответ 13.03.2023, 00:25:14
от ecolora
Плагин seoLinks

Автор alexandr-spb

Ответов: 0
Просмотров: 2637
Последний ответ 26.01.2023, 23:08:41
от alexandr-spb