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

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
Немного ошибся в коде. замените в строчке     else f.submit.disabled =  единицу на ноль. Тогда кнопка активируется. Можете заменить onchange на onKeyUp, тогда проверка будет происходить после каждого нажатия клавиши.
Спасибо! Заработало. С меня плюсик.
Правда с onKeyUp не получилось посмотреть, что-то не работает.
А можно сделать так, чтобы окно с оповещением выскакивало только когда человек будет пытаться нажать на кнопку Отправить?
*

diy05

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Здравствуйте!
Возникла проблемка:
калькулятор отлично работал и сообщения отправлялись
вставил в .htaccess для редиректа
Код
RewriteCond %{HTTP_HOST} ^www.сайт\.pro
RewriteRule ^(.*)$ http://сайт.pro/$1 [R=permanent,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://сайт.pro/ [R=301,L]
и перестала работать форма связи
калькулятор работает, а вот по кнопке "отправить" из формы связи сразу выкидывает на главную страницу и никакие сообщения не отправляются

кто нибудь сталкивался?
*

Dmitriy240

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
В IE 9 вывод сумм почему-то глючит, приходится нажимать в браузере пиктограмму "представление совместимости", тогда все работает. Кто-нибудь с этим разобрался?
« Последнее редактирование: 10.03.2014, 02:17:28 от Dmitriy240 »
*

Rust69

  • Новичок
  • 8
  • 0 / 0
Добрый всем вечер, такая ситуация, не могу вставить кнопку в калькулятор чтобы рассчитывало только после нажатия, так и не разобрался с функциями onclick. Нужно чтоб в начале расчета стоял "0", при изменении переменных сумма не менялась, а только при нажатии "рассчитать стоимость". Помогите пожалуйста, если что, сколько стоит - скажите? Весь мозг сломал, страница http://ops-77.ru/vid%D0%B5%D0%BE-n%D0%B0bliud%D0%B5ni%D0%B5.
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Добрый всем вечер, такая ситуация, не могу вставить кнопку в калькулятор чтобы рассчитывало только после нажатия, так и не разобрался с функциями onclick. Нужно чтоб в начале расчета стоял "0", при изменении переменных сумма не менялась, а только при нажатии "рассчитать стоимость". Помогите пожалуйста, если что, сколько стоит - скажите? Весь мозг сломал, страница http://ops-77.ru/vid%D0%B5%D0%BE-n%D0%B0bliud%D0%B5ni%D0%B5.
Попробуйте вывести результат в скрытое поле, а на кнопку повесьте выполнение функции, которая умножает значение этого поля на единицу и выводит результат в указанном месте.
*

Rust69

  • Новичок
  • 8
  • 0 / 0
Дак, в том-то и дело суть я понял, а как прописать кнопку правильно, не знаю.
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Скрываете вывод вашей цены и ставите кнопку расчета:
Код
<div style="display: none;">{cena1}</div>
<input type="button" onclick="calc(this.form)" value="Рассчитать">
На месте вывода цены ставите такой код:
Код
<p>Стоимость видеонаблюдения <div id="sum">0</div> руб.</p>

В начале вашей таблицы вставьте такой скрипт:
Код
  <script>
   function calc(f) {
a=document.getElementById("cena1").value;
document.getElementById("sum").innerHTML = a
   }
  </script>
*

Rust69

  • Новичок
  • 8
  • 0 / 0
Спасибо огромное Вам добрый человек. :D Вы мне очень, очень помогли!
Как Вам хотя бы добавить плюсик в репутации, чтобы отблагодарить? ...
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Жмите на плюсик вот здесь
*

Rust69

  • Новичок
  • 8
  • 0 / 0
Я видимо не достиг уровня, у меня пока +- не видно пока. Но все равно Вам спасибо. Как достигну рейтинга обязательно нажму на плюсик...
Спасибо!
*

webch

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
  • 3dch.ru создание виртуальных туров
дико извиняюсь а где можно скачать калькулятор для онлайн подсчет окон 2,5 Joomla? я так понимаю это http://delajoom.ru/index.php/demonstracija-raboty/kalkulator-okon-onlajn-joomla
*

gazman

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
не работает калькулятор. не выводит сумму. Joomla 3
вот моя форма

<p>Стоимость: {rez}</p>

формула  rez=1000+100

ввёл тестовые значения. как я понимаю должно вывести 1100. а выводит пустоту.

подскажите пожалуйста где я ошибаюсь
 
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
не работает калькулятор. не выводит сумму. Joomla 3
вот моя форма

<p>Стоимость: {rez}</p>

формула  rez=1000+100

ввёл тестовые значения. как я понимаю должно вывести 1100. а выводит пустоту.

подскажите пожалуйста где я ошибаюсь
 
Mootools подключен?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Должно быть примерно так. Форма:
Код
<p><input type="text" name="var1" value=""></p>
<p><input type="text" name="var2" value=""></p>
<p>Стоимость: {rez}</p>
Формула:
Код
rez={var1}+{var2}
*

vdm-m3

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Не работает на Joomla 3.2.3 на сайте begushaya-stroka.ru
Пробовал отключать и jquery и mootools - не работает.
Компонент работает, а вот плагин не выводит калькулятор.
Вывод калькулятора делал так: в материале написал {formcalc 2} (2 - ID калькулятора)
*

gazman

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
согласен. делал так же. плагин вообще не выводит калькулятор
*

gazman

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Должно быть примерно так. Форма:
Код
<p><input type="text" name="var1" value=""></p>
<p><input type="text" name="var2" value=""></p>
<p>Стоимость: {rez}</p>
Формула:
Код
rez={var1}+{var2}

я так делал. решил вообще суперпросто сделать. без лишних переменных. так и так не работает. мутулз не пробовал пока....
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
Второй раз пробую использовать компонент - не получается
Для начала все сделал как в инструкции для формы обратной связи - сделал статью.
в результате пусто. На сайте только "<p/>" на месте формы.
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
Еще вопрос. Я так понял что сообщение уходит администратору сайта, Можно ли сменить адрес не адрес менеджера.
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
<p/> измени на </p> и проверь хорошенько код на наличие ошибки. И выложи код посмотреть
В компоненте есть вкладка где можно указать адреса для отправки сообщений.

*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
<P/>   это в итоге на сайте в браузере, не мой код а експлоера по F12

ошибка честно не знаю в чем, вставлял код без изменений с примера
свой - пробовал только одну кнопку отправить, результат тот же

сейчас код - <input type="submit" value="Отправить заявку">
« Последнее редактирование: 16.03.2014, 20:04:42 от antipod »
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
Какой код, какая версия Joomla?
*

gazman

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
отключил мутулз, бутсрап и джей кверри

не работает калькулятор. не пойму в чём проблема((

<input type="radio" name="viz" value="1">Сайт визитка<br>
<input type="radio" name="corp" value="2">Корпоративный сайт<br>
<input type="radio" name="shop" value="3">Магазин<br>
<p>Система управления сайтом</p>
<input type="checkbox" name="joo" value="1">Joomla<br>
<input type="checkbox" name="word" value="2">Wordpress<br>
<input type="checkbox" name="dle" value="3">Dle<br>
<p>Стоимость: {rez}</p>

rez={viz}+{corp}

вот сайт http://vash-sayt.ru/r-it/tseny/kalkulyator
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
Мутулз как раз таки и нельзя было отключать. Включите, посмотрим
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
Какой код, какая версия Joomla?
код написал, только одна кнопка, Joomla 3.1
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
Мутулз включите
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
понял, инструкцию внимательно почитал
« Последнее редактирование: 17.03.2014, 12:56:22 от antipod »
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
Нашел в инете mootools.js  добавил строчку в index.php шаблона
все равно ничего нет
еще, нашел 4 mootools в media/systems/is
подскажите как подключить их
« Последнее редактирование: 17.03.2014, 13:06:09 от antipod »
*

e.lodyanov

  • Захожу иногда
  • 126
  • 4 / 0
Подключите 
Код
<script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
<script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
*

antipod

  • Захожу иногда
  • 66
  • 2 / 0
один в один, этот код есть в итоговом сайте
вижу в эксплорере по f12
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Web Plan интерактивная карта для Joomla 1.5 (построение сайтов плановых объектов)

Автор DelaShop

Ответов: 39
Просмотров: 32427
Последний ответ 21.01.2018, 14:50:57
от Dinamitt
Калькулятор форм - продолжение

Автор osobist

Ответов: 2
Просмотров: 5295
Последний ответ 25.01.2015, 18:00:18
от dj_serg
Отрывной календарь Joomla, календарь событий.

Автор DelaShop

Ответов: 35
Просмотров: 32564
Последний ответ 17.12.2014, 06:20:05
от EndVal
Компонент " Просто каталог Joomla + Mixmarket Joomla "

Автор DelaShop

Ответов: 16
Просмотров: 18449
Последний ответ 10.07.2013, 11:06:13
от konservator