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

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Исправил.
Форма
Спойлер
[свернуть]
Формула
Спойлер
[свернуть]
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
В форме нет закрывающего тега </form>

У вас если не заполнить одно поле, то считается что-то?
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Тег - закрыл, Спасибо. Смотря, которое поле не заполнено, может написать NaN Infinity или просто 0.
Когда ввожу значение длина 200 сумма 80 напряжение 100 падения 10 в результате должен быть 0,57 а получаю 5,7 причем в разных браузерах по разному, может сразу нормально посчитать, а может выдать 5,7. И если после получения результата изменю какие значения например сумму на 100 - выдает некие "заоблачные" значение
« Последнее редактирование: 12.11.2014, 16:38:32 от yura-ws2 »
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Попробуйте такие инпуты вместо ваших
<input class="content" style="text-align: center;" name="dlina" type="number" required placeholder="200" value="200" size="2" align="middle" />
<input class="content" style="text-align: center;" name="summagr" type="number" required placeholder="80" value="80" size="2" align="middle" />
<input style="text-align: center;" type="number" required placeholder="100" value="100" name="napryazhenie" size="2" align="middle" />
<input class="content" style="text-align: center;" name="padenie" type="number" required placeholder="10" value="10" size="2" align="middle" />
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Теперь всегда  NaN
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Тогда type="number" исправьте на type="text"
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Исправил, но проблема с расчетом формулы осталась. Это я о том, что нужно несколько раз покликать по значению, чтобы начало нормально считать
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Rsum=({napryazhenie}*{napryazhenie})/{summagr}
I={napryazhenie}/{Rsum}
procpad=({napryazhenie}*{padenie})/100
Umin={napryazhenie}-{procpad}
rez=(0.0178*{I}*2*{dlina})/({napryazhenie}-{Umin})

I={napryazhenie}/({napryazhenie}*{napryazhenie})/{summagr}
I={summagr}/{napryazhenie}
Umin={napryazhenie}-({napryazhenie}*{padenie})/100


rez= ... /({napryazhenie}-{napryazhenie}-{procpad})
rez= ... /(-{procpad})
rez= ... / -({napryazhenie}*{padenie})/100
rez= ... 100/-({napryazhenie}*{padenie})
rez= {I}*{dlina}* 3,56/-({napryazhenie}*{padenie})
rez= {summagr}*{dlina}* 3,56/{napryazhenie}/-({napryazhenie}*{padenie})
rez= {summagr}*{dlina}* 3,56 * (-{padenie})

Может где я и ошибся, но у меня вышло, что ваша формула дает результат со знаком - и не учитывает напряжение.
rez= - (3,56*{summagr}*{dlina}*{padenie})
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

osobist

  • Захожу иногда
  • 116
  • 0 / 0
Анонсирую выход новой версии компонента FormCalc под Joomla 3.0, скачать и пользоваться можно по адресу http://delajoom.ru/index.php/skachat-komponent-reshenija , полная преемственность старым принципам построения калькуляторов под Joomla  и расчетов. 
На Joomla 3.3.6 Stable компонент встал без внештатных ситуаций, но при попытке создать форму выдаёт белую страницу
http://evropotolokk.ru/administrator/index.php?option=com_formcalc&view=formcalc&layout=edit
где что поправить ? Подскажите пожалуйста.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Может где я и ошибся, но у меня вышло, что ваша формула дает результат со знаком - и не учитывает напряжение.
rez= - (3,56*{summagr}*{dlina}*{padenie})
По моим иследованиям я определил, что формула работает вроде как "правильно" до момента, когда нужно в формуле rez=(0.0178*{I}*2*{dlina})/({napryazhenie}-{Umin})  как раз значение  /  на ({napryazhenie}-{Umin})
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Ну именно в  ({napryazhenie}-{Umin}) появляется отрицательное значение
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Я в ступоре  :(
Есть формула: I={napryazhenie}/{rsum},  на екран выводим значение  <div style="display:center;">{I}</div> получаем  0,8 (по формуле что есть правильно), а паралельно выводим rez={I} - получаем 80  :o
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Такого быть не может. Где-то еще что-то значит присутствует.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Да я вроде уже все проверил. Но если покликать по значениям и поток кнопку Расчитать значение меняеться с 80 на 0,8 как должно быть, причем значений я не меняю
Спойлер
[свернуть]
Формула
Спойлер
[свернуть]
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Цитировать
Rsum=({napryazhenie}*{napryazhenie})/{summagr}
I={napryazhenie}/{Rsum}
Тут можно упростить:
I={summagr}/{napryazhenie}
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

lopata12

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Здравствуйте можете ли вы добавить два калькулятора к себе на сайт?

Калькулятор расчета экономии @http://ledeffect.ru/calculations/calculator-2.html
Калькулятор позволяет произвести расчет получаемой Вами экономии по сравнению с классическим освещением, к примеру Вы можете рассчитать окупаемость проекта сравнивая светодиодные светильники с люминесцентными. Калькулятор рассчитает Вам три параметра: Стоимость проекта, Экономия от применения светодиодного освещения, Срок окупаемости проекта.

 
Калькулятор расчета количества светильников  @http://ledeffect.ru/calculations/calculator-1.html
Калькулятор позволяет произвести ориентировочный расчет требуемого количества светодиодных светильников для Вашего помещения. Калькулятор прост в обращении, Вы получите результат в несколько простых шагов.

думаю многим было бы интересно это видеть сделанное под Joomla, спасибо!
*

yura-ws2

  • Новичок
  • 9
  • 0 / 0
Pazys, спасибо за Ваши подсказки. Скажите пожалуйста можно ли сделать так, что если в результате моей формулы я получаю значение больше чем 99 - при нажатии кнопки рассчитать выдавалось не 99 а например какая фраза например - такого быть не может? заранее благодарен
P.S. Вопрос закрыт. Разобрался сам.
« Последнее редактирование: 13.11.2014, 13:22:47 от yura-ws2 »
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Здравтствуйте, срочно нужен калькултор расчета для медицинского сайта! Соклько будет стоить? Кто возьмется?

Отписался автору на почту на сайте компонента, но писал и раньше он не отвечает!
*

новичок780

  • Новичок
  • 1
  • 0 / 0
День добрый.Скачал для Joomla 3, установил, выдает ошибку в админке при нажатии -создать-. Ошибка вида санчала: Strict Standards: Declaration of FormCalcController::display() should be compatible with JControllerLegacy::display($cachable = false, $urlparams = Array) in далее administrator/components/com_formcalc/controller.php on line 35
Как исправить? подскажите, пожалуйста. Версия Joomla 3.3.6
*

Иоланта

  • Захожу иногда
  • 166
  • 3 / 0
День добрый.Скачал для Joomla 3, установил, выдает ошибку в админке при нажатии -создать-. Ошибка вида санчала: Strict Standards: Declaration of FormCalcController::display() should be compatible with JControllerLegacy::display($cachable = false, $urlparams = Array) in далее administrator/components/com_formcalc/controller.php on line 35
Как исправить? подскажите, пожалуйста. Версия Joomla 3.3.6

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

===

ну а по теме: откройте это файл, там есть 29-я строка
Код
function display()
замените на:
Код
function display($cachable = false,
  $urlparams = array() )

*

vampirkarisha

  • Новичок
  • 4
  • 0 / 0
При сохранении формы все русские буквы подменяет знаками вопроса.
Уже проверила: в www\plugins\content\formcalc указано UTF-8, пробовала даже использовать cp1251, не помогло;проверила в components/com_formcalc/views/formcalc/view.html.php, даже перенастроила там на  автоматический выбор языка, не помогло; еще одно из предложенных на страницах этого форума решений (Либо файлы надо пересохранять в UTF-8 либо таблицы БД в UTF8_general_ci") - тоже, как можно догадаться, не помогло!
Подскажите пожалуйста, где можно еще посмотреть, проверить, поменять! Уже крыша едет  :'(
*

IvanBerdinskiy

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • Иркутск
Проблему кодировки решил через HTML кодовые символы.
В админке смотрится не очень, зато все работает.
« Последнее редактирование: 15.12.2014, 19:25:00 от IvanBerdinskiy »
*

vampirkarisha

  • Новичок
  • 4
  • 0 / 0
Проблему кодировки решил через HTML кодовые символы.
В админке смотрится не очень, зато все работает.
не могли бы привести пример? очень не очень в этом разбираюсь, а по примеру уже смогу доковыряться х)
*

IvanBerdinskiy

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • Иркутск
не могли бы привести пример? очень не очень в этом разбираюсь, а по примеру уже смогу доковыряться х)

http://www.programva.com/ru/html-kody-tablicy-simvoly-kodirovka/CP866?oE=converter
*

vampirkarisha

  • Новичок
  • 4
  • 0 / 0
http://www.programva.com/ru/html-kody-tablicy-simvoly-kodirovka/CP866?oE=converter
да, тогда все верно, я думала, что-то не так делаю. Собственно перекодировала похожим образом фразу: "Средняя", получаю значение "&1057;&1088;&1077;&1076;&1085;&1103;&1103;"(еще с решетками, удалила, чтобы продемонстрировать строку), ввожу в строку названия формы, сохраняю, получаю "!@54=OO".
*

IvanBerdinskiy

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • Иркутск
да, тогда все верно, я думала, что-то не так делаю. Собственно перекодировала похожим образом фразу: "Средняя", получаю значение "&1057;&1088;&1077;&1076;&1085;&1103;&1103;"(еще с решетками, удалила, чтобы продемонстрировать строку), ввожу в строку названия формы, сохраняю, получаю "!@54=OO".


Нужно убрать ";" Все тоже но без  ";". В Dreamweaver можно сделать замену ";" на пустое и все ";" уберутся.
*

vampirkarisha

  • Новичок
  • 4
  • 0 / 0
Нужно убрать ";" Все тоже но без  ";". В Dreamweaver можно сделать замену ";" на пустое и все ";" уберутся.
оооооо, получилось )))))) как только накополю сообщений, поставлю + вам! спасибо!!
*

IvanBerdinskiy

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • Иркутск
На Joomla 3.1.5 не работает?
*

morgusha

  • Захожу иногда
  • 66
  • 0 / 0
подскажите пожалуйста !
сделал форму всё нормально но сообщение когда отправляется то не выходит текст типа:ваша заявка принята !
url становится такой вот .../index.php/component/formcalc/submit?Itemid=101
в коде старницы вот что закоментированно почему  то !
Код
<!--<div id="content">
<div id="system-message-container">
</div><p><span>ваша заявка принята ! </span></p></div>-->

все файлы перерыл так и не нашёл где это исправить ?
*

IvanBerdinskiy

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • Иркутск
В RSForm!Pro есть функция калькулятор.
И считает все без ошибок, и отправляется и куча функций.
Только время зря убил с эти модулем.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор DelaShop

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

Автор osobist

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

Автор DelaShop

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

Автор DelaShop

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