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

baloon

  • Захожу иногда
  • 369
  • 13 / 0
между 1.5 и 1.6
Не знаю. Я пока активно не юзал 1.6.
*

corsarufo

  • Захожу иногда
  • 64
  • 1 / 0
есть строка:
Цитировать
    order = ff_getElementByName('ob_2').value;
    if (order != '') amount += parseInt(order) * 5.99;
как тут что поправить что бы не поле ob_2 умножалось на 5.99, а что бы поле ob_2 умножалось на ob_1 - ?
*

corsarufo

  • Захожу иногда
  • 64
  • 1 / 0
Цитировать
function ff_sv_2_validation(element, message)

{
    ff_pss_calculate();
    if (element.value==0) {
        ff_validationFocus('sv_1');
        return message;
    } // if
    return '';
} // ff_sv_2_validation

function ff_pss_calculate()
{
    var amount = 0;
    var order;
    var sv2;

    sv2=ff_getElementByName('sv_1').value  * 30;

    ff_getElementByName('sv_2').value = sv2;
} // ff_pss_calculate

Цитировать
function ff_sv_1_validation(element, message)
{
    ff_pss_calculate();
    if (element.value==0) {
        ff_validationFocus('sv_1');
        return message;
    } // if
    return '';
} // ff_sv_1_validation

function ff_pss_calculate()
{
    var amount = 0;
    var order;
    var sv1;

    sv1 =ff_getElementByName('ob_4').value * ff_getElementByName('sv_0').value * ff_getElementByName('ob_2').value;

    ff_getElementByName('sv_1').value = sv1;
} // ff_pss_calculate



смысл такой что либо sv_1 либо sv_2 поля работают как бы отдельно, пытаюсь сделать совметно начинает считать либо св_1 либо св_2 в зависимости от того как скрипт поменяю, в данном случае в св_2 выводиться 0 т.к. св_2 это св_1*30 а т.к. в св_1 не вписывается почему то результат вот и поулчается что 0 на 30 умножается, можеnt подсказать почему не идет результат в св_1 - ?
*

zolga7

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Если не работает Капча - нужно проверить настройки сервера: в php должны быть установлены библиотеки GD и TTF, так как CAPTCHA данного компонента использует функции: imagettfbbox и imagettftext

А что делать если библиотека установлена, а CAPTCHA не работает?
*

LioFFka

  • Новичок
  • 1
  • 0 / 0
Здравствуйте, у меня такой вопрос: как сделать зависимые списки в BreezingForms? Знаю, что это реализуемо, но как?
*

baloon

  • Захожу иногда
  • 369
  • 13 / 0
Здравствуйте, у меня такой вопрос: как сделать зависимые списки в BreezingForms? Знаю, что это реализуемо, но как?
Там есть примеры форм. Один из примеров, как раз то, что вам нужно. Копируйте его и переделывайте под себя.

Вот ссылка на версия 1.7.1 http://www.crosstec.de/component/docman/cat_view/3-products/4-breezingforms/21-breezingforms-171.html
*

saidrustam

  • Захожу иногда
  • 100
  • 7 / 0
Ребята а есть ли Русификация для BreezingForms 1.7.х версии, видно очень полезный компонент.
спасибо зааране.
*

Emeritua

  • Новичок
  • 6
  • 0 / 0
  • Сайты под ключ
Русификации нет! Могу поставить и настроить по Вашим запросам любые формы с компонентом BreezingForms
Снимаю КопЫрайт компонента (надпись "Forms for Joomla!© by Crosstec")
По Украине - за пополнение моб. счёта, по другим странам - за WMZ и т.п.
Пишите на мыло: emeritua(кулебяка)gmail.com
BreezingForms - дешевле сломать и убрать копирайт чем платить ежемесячно 20 у/е
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
поставил com_breezingforms_172, но не могу понять, он работает с Joom!Fish или нет ?
*

zmancer

  • Давно я тут
  • 519
  • 76 / 19
Поддерживаю пост выше, вроде бы поддержка JoomFish имеется, но не работает пишет вот такую ошибку при попытке осуществить перевод в joomfish
 Fatal error: Call to a member function getTable() on a non-object in /home/v/ххх/ххх.ru/public_html/administrator/components/com_joomfish/models/ContentObject.php on line 574
*

pavlov-495

  • Новичок
  • 1
  • 0 / 0
Всем привет. Есть эксперты компонента. Считал уже, наверно, весь инет и не нашел ответа. КАК округлить значение суммируещего элемента?
*

nady

  • Новичок
  • 3
  • 0 / 0
Всем привет!
Подскажите, пожалуйста, есть ли какой аналог этого гаджета для Joomla 1.5? а то что-то нигде не скачать breezingforms((( Или может у кого остался этот компонент? поделитесь, пожалуйста, очень надо! :)
*

zmancer

  • Давно я тут
  • 519
  • 76 / 19
На офф сайте качайте, там есть бесплатная версия.
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

nady

  • Новичок
  • 3
  • 0 / 0
zmancer, спасибо! :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

QuickForm 3 - конструктор простых и сложных форм

Автор varX

Ответов: 1105
Просмотров: 83857
Последний ответ 09.09.2025, 09:37:54
от Alex_gs
QuickForm 2 - конструктор форм с зависимыми полями и калькулятором

Автор varX

Ответов: 1351
Просмотров: 120013
Последний ответ 03.10.2022, 22:34:40
от dodsik
Конструктор форм joomly.ru. Ошибка 404

Автор kunsaid

Ответов: 2
Просмотров: 2959
Последний ответ 11.01.2022, 10:00:21
от kunsaid
Не работает ни один скрипт конструктора форм

Автор Den299

Ответов: 2
Просмотров: 3641
Последний ответ 19.07.2019, 17:33:53
от Den299
Создание форм с помощью JSN UniForm Pro

Автор yunoshev

Ответов: 7
Просмотров: 5688
Последний ответ 07.12.2017, 18:09:22
от alekshavan