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

Dr-gonZO

  • Осваиваюсь на форуме
  • 48
  • 0 / 1
Дроброго времени суток господа... я понимаю что тема полюбому уже заезжаная
Но не для меня.
Так как я являюсь счастливым Обладателем чайника))  Имею права задаться этим  вопросом))   :laugh:


И такст..

В общем пытаюсь сделать сайт для сестренки).. особо не шарю.. это вам наверняка стало понятно, судя по названию заезжанной темы)

Имею очень большое желание скрыть отображения страницы через тег Iframe
И скрыть его именно для мобильных устройств.

Ну а в идеале конечно.  Цель.
Запретить отображения фрейма.  и заместо него при разрешение меньше,  допустим 1000 . Выводить картинку . или кнопку. но и картинка пойдет на крайняк.

линка на сайт blackair.ru
Код
<iframe src="broni/index.php" width="100%" height="900" frameborder="0"> </iframe>


« Последнее редактирование: 05.01.2016, 04:21:14 от Dr-gonZO »
*

Dr-gonZO

  • Осваиваюсь на форуме
  • 48
  • 0 / 1
И в обще я что то теряюсь, надо ли мне это в обще..

Может лучше попытаться оптимизировать (под мобильные устройства) страничку которую я вывожу. фреймом

Или тупо закрыть отображения для мобильных и вывести за место этого баннер..
« Последнее редактирование: 04.01.2016, 02:36:17 от Dr-gonZO »
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Dr-gonZO

  • Осваиваюсь на форуме
  • 48
  • 0 / 1
Бро я не секу про доры.  Но вроде бы понимаю что ты спрашиваешь про страницу которая я вывожу через iframe . если так то

То стрица с php скрипотом. (типо онлай бронирование)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
для фрейма добавьте класс, например
Код
<iframe class="hidden_max1000" src="broni/index.php" width="100%" height="900" frameborder="0"> </iframe>

в стилях задайте:
Код: css
@media (max-width:1000px) {
  .hidden_max1000 {display:none;}
}
*

Dr-gonZO

  • Осваиваюсь на форуме
  • 48
  • 0 / 1
 Спасибо броу, что отозвался помочь, хорошо когда помогают.

Я вот так реализовал.



Код
<iframe src="broni/index.php" width="100%" class="disp_none" height="680" frameborder="0"> </iframe> 
<iframe src="broni/schedule.php" width="100%" class="disp_none" height="1100" frameborder="0"> </iframe>
<div class="disp_block"><a href="broni/index.php" target="_blank" style="color: white;">Бронирование с мобильных устройств</a></div>

Код
@media screen and (max-width: 1240px) {
.disp_none {display: none;}
.disp_block {display: block;}
}
@media screen and (min-width: 1240px) {
.disp_block {display: none;}
}

*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
Я вот так реализовал.
А теперь на ПК уменьшите ширину браузера (<1240), загрузите страницу и посмотрите в исходный код. На мобильниках фреймы не видны, но грузятся, через мобильные сети (медленно и платно). Предполагаю, вы хотели для мобильных облегчить страницу, кто хочет заказать, перейдет на отдельную.
Ищите на JED плагины определения мобильных и выводите фреймы (или модульную позицию) в зависимости от агента.
Веб-разработка: заказ. Только новая разработка.
*

Dr-gonZO

  • Осваиваюсь на форуме
  • 48
  • 0 / 1
Можно на ты бро, я молодой пока) 26 ..
Про цели..
Ню дабы не переверстывать php скрипт, и не делать адаптацию  под мобильные устройства. чтобы как то облегчить вес страницы для мобильных.
скрыть, и не мучать будущих мобильных пользователей скролом фреймом вполне получаеться.  :laugh:

Благодарю что направил на правильный путь, и было бы идеально пример реализации.. этих самых плагинов.. как люди то делают, почитать хоть..
Ато я чето не могу догнать что за рыба эти "Мобильные фреймы"

Мир
« Последнее редактирование: 05.01.2016, 07:24:09 от Dr-gonZO »
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
Можно на ты бро, я молодой пока) 26 ..
Я тебе не бро, и слэнг свой оставь для своей компании.

Насчет почитать - в сети много материала. Что вы нашли, и что вы не поняли?
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скрыть одну метку в Яндекс.Картах при множественном добавлении меток

Автор kysin

Ответов: 0
Просмотров: 350
Последний ответ 30.09.2022, 20:38:45
от kysin
Как изнутри iframe вызвать внешнюю функцию? [РЕШЕНО]

Автор dm-krv

Ответов: 6
Просмотров: 1201
Последний ответ 25.08.2019, 20:41:07
от dm-krv
[Решено] jQuery и работа над элементами в iframe

Автор ELLE

Ответов: 10
Просмотров: 18054
Последний ответ 22.06.2016, 14:32:52
от warlocksp
Как скрыть элемент в iframe?

Автор Vakula777

Ответов: 3
Просмотров: 7750
Последний ответ 10.10.2014, 21:02:57
от Taatshi