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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Смена iframe по команде
« : 06.10.2017, 01:51:06 »
Нашел такой код:
https://ru.stackoverflow.com/questions/119826/Смена-iframe-по-команде/119870

нет последовательности, 4 ссылки, а код играется с двумя  *suicide*

Код
<script type="text/javascript">
    var urls = ["адрес",
"адрес",
"адрес",
"адрес"];
    var curl = 0;
    function changeURL(frame)
    {
    if(curl == 0)
    {
    frame.src = urls[0];
    curl = 1;
    }
    else
    {
    frame.src = urls[1];
    curl = 0;
    }
    }
</script>
<iframe id="myframe" width="700" height="394" src="images/video.jpg" style="border:0;" scrolling="no" allowfullscreen></iframe>
<input type="button" value="Сменить" onclick="changeURL(document.getElementById('myframe'))">


« Последнее редактирование: 06.10.2017, 13:52:13 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
как можно прописать в виде кнопок замену url?
допустим у меня 4 или 30 url и поочередное ?
простое без длинного кода... :'(

http://jsfiddle.net/rhpNc/
« Последнее редактирование: 06.10.2017, 12:11:32 от leo78 »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Смена iframe по команде
« Ответ #2 : 06.10.2017, 11:55:44 »
допустим у меня 4 или 30 url  :'(
Будут 3 или 29 кнопок :).
https://jsfiddle.net/n_robert/hcandrq2/
Не будь паразитом, сделай что-нибудь самостоятельно!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Смена iframe по команде
« Ответ #3 : 06.10.2017, 12:14:12 »
оно а чтобы в выпадающем меню не было "//video.sibnet.ru/shell.php?videoid=2668979&autoplay=1" ?

Код
    'адрес'="1",
    'адрес'="2",
    'адрес'="3",
    'адрес'="4"

Код
<select id="url" onchange="changeSrc(this, document.getElementById('myframe'));">
    <option value="">Выбор эп.</option>
    <option value="">01 эп.</option>
    <option value="">02 эп.</option>
    <option value="">03 эп.</option>
    <option value="">04 эп.</option>
</select>
« Последнее редактирование: 06.10.2017, 13:53:30 от leo78 »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Смена iframe по команде
« Ответ #4 : 06.10.2017, 13:13:30 »
Меняйте текст по желанию. Обновил пример.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Смена iframe по команде
« Ответ #5 : 06.10.2017, 13:17:50 »
Класс с меня + yes! :D

я только чуть изменил удалил "<option value="">Выбор эп.</option>"
« Последнее редактирование: 06.10.2017, 13:30:33 от leo78 »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Смена iframe по команде
« Ответ #6 : 06.10.2017, 21:47:03 »
Пишите здесь, @leo78, в личке советов не даю. Не вижу 2 iframe в примере.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Смена iframe по команде
« Ответ #7 : 06.10.2017, 22:42:57 »
robert
Не, спасибо ещё раз, я переделал, iframe лучше один, так проще и меньше проблем, тем более можно подписать.
Очень полезный скрипт, мне очень понравился.  :D
Спасибо  :D
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Смена iframe по команде
« Ответ #8 : 11.10.2017, 10:14:28 »
robert
Цитировать
Тебе надо реально уже на доп полях для материалов делать, чтобы в
шаблоне только новый код менять, а все данные тянулись с доп полей

Вопрос возможно ли вбивать доп полями и вставлять в скрипт, или пока эта функция в демо режиме?  :o
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Размер шрифта в iframe

Автор AlexB

Ответов: 6
Просмотров: 1763
Последний ответ 10.03.2020, 16:07:44
от AlexB
Тег iframe и его содержимое, возможно добиться в html5

Автор leo78

Ответов: 12
Просмотров: 3144
Последний ответ 04.03.2017, 00:52:52
от leo78
Смена фона в масштабируемом блочном элементе

Автор Virtualer

Ответов: 0
Просмотров: 1091
Последний ответ 23.01.2016, 14:12:37
от Virtualer
[Решено] css: резиновый размер видео-плеера через iframe

Автор slepoy

Ответов: 2
Просмотров: 4016
Последний ответ 07.08.2015, 23:55:04
от slepoy
Изменить CSS страницы в iframe

Автор slepoy

Ответов: 9
Просмотров: 16085
Последний ответ 26.06.2014, 00:23:28
от fsv