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

mario052

  • Захожу иногда
  • 211
  • 1 / 0
а можно его запилить под такую вещь ?
http://importex.in.ua/comments/archive_1.html
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Можно, но лучше сделать на чистом js, там не сложно
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
Цитировать
Первоначально необходимо создать новую форму нажав на "Создать", после чего вам станет доступна административная панель создаваемой вами формы-калькулятора,
белый экран... жаль, выкинуть придется.... трешка 3.3.1
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

mario052

  • Захожу иногда
  • 211
  • 1 / 0

блин, я не шарю,  а мне очень нада!
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
блин, я не шарю,  а мне очень нада!
Могу помочь за небольшую плату. Но только на следующей неделе
*

mario052

  • Захожу иногда
  • 211
  • 1 / 0
Могу помочь за небольшую плату. Но только на следующей неделе
Цена вопроса?
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
белый экран... жаль, выкинуть придется.... трешка 3.3.1
ответит кто-нить из разработчиков?)))
на 2.5 та же фигня... у меня кривой комп?))) или монитор 27" слишком широкий?))))) я тупой? и--и-и-и-ик... уф коньяк только и спасает!! спс, коньяк!
« Последнее редактирование: 13.06.2014, 20:42:49 от verstalshik »
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

diy05

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Здравствуйте!

У меня на странице с калькулятором появилась чужая ссылка на левый сайт.
Причем именно только на странице с калькулятором, все остальные  - чистые
Пробовал найти код через base64 - ничего не вышло, ребята из хостинга тоже ничего не могут найти.
Переустановка компонента не помогла, ссылка сразу же появилась опять.
Кто-нибудь сталкивался? Или может помочь?
Пример тут http://art-color.pro/price.html - под кнопкой "отправить заявку" - ссылка "в лифтах"
« Последнее редактирование: 16.06.2014, 02:05:30 от diy05 »
*

Pazys

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

diy05

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Это в компоненте зашито, в шаблоне и в плагине, где-то, вроде в этой ветке, это обсуждалось.
нет, именно те ссылки, которые изначально стояли я удалил еще давно, эта совершенно другая и взялась всего пару дней назад откуда непонятно, до этого её не было....
*

Pazys

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

Goorman

  • Новичок
  • 1
  • 0 / 0
Здравствуйте!
Помогите пожалуйста, поставил компонент под Joomla 2.5.6
Форму создал, расчет тоже (по примеру), но считать не хочет... Т.е. цифра не выводится. Помогите пожалуйста, что делать в данной ситуации? Читал про конфликт mootools и Jquery, но так толком ничего и не понял...
Помогите пожалуйста. Заранее благодарен за ответ.
*

Mantoptera

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
  • Не вини мир. Найди решение.
Цитировать
Первоначально необходимо создать новую форму нажав на "Создать", после чего вам станет доступна административная панель создаваемой вами формы-калькулятора,
белый экран... жаль, выкинуть придется.... трешка 3.3.1

То же самое. В админке в компонент заходит, а создать калькулятор не получается - белый экран. Joomla! 3.3.1 Компонент и плагин с сайта деладжом.
В логе [Wed Jun 25 13:32:02 2014] [error] [client ******] PHP Fatal error:  Declaration of TableFormCalc::bind() must be compatible with JTableInterface::bind($src, $ignore = Array) in *******/administrator/components/com_formcalc/tables/formcalc.php on line 90, referer: http://*********/administrator/index.php?option=com_formcalc
« Последнее редактирование: 25.06.2014, 14:34:19 от Mantoptera »
*

papagot

  • Новичок
  • 8
  • 0 / 0
При открытии шаблона формы FormCalc выходит следующее:Далее всё открывается и редактируется, но в результате на тег {formcalc 1} даёт один пробел (в качестве шаблона использую один из примеров, не самописный). Joomla 3.2.1

Для решение проблемы делаем следующее
<JOOMLA ROOT>/administrator/components/com_formcalc/tables/formcalc.php
И УДЕЛЯЕМ КОД С  22-78 СТРОКУ.

В конечном итоге файл должен выглядеть так.
Код
<?php
/**
 * @version SVN: $Id$
 * @package    FormCalc
 * @subpackage Tables
 * @author     EasyJoomla {@link http://www.easy-joomla.org Easy-Joomla.org}
 * @author     Constantine Poltyrev {@link http://bugs.rallycars.ru}
 * @author     Created on 06-Dec-2010
 */

//-- No direct access
defined('_JEXEC') or die('=;)');

/**
 * FormCalc Table class
 *
 * @package    FormCalc
 * @subpackage Tables
 */
class TableFormCalc extends JTable
{

    /**
     * Constructor
     *
     * @param object $db Database connector object
     */
    function TableFormCalc(& $db)
    {
        parent::__construct('#__formcalc', 'id', $db);
    }//function

}//class
*

lexx74

  • Захожу иногда
  • 158
  • 1 / 0
Есть форма простая

Код
Длинна (мм): <input type="text" name="dlinna" ><br>
Ширина (мм): <input type="text" name="shirina" ><br>
тест1 - {d2}<br>
тест2 - {s2}<br>
Всего: {result1}<br>

и формула для нее

Код
d2={dlinna}/1000
s2={shirina}/1000
result1=d2*s2

Почему когда я удаляю промежуточные результаты - конкретно эти 2 строчки
тест1 - {d2}<br>
тест2 - {s2}<br>
в result1 становиться пусто?

Каким образом объявлять новые переменные?
запись аля result=({dlinna}/1000)*({shirina}/1000) - не работает
*

sherapet

  • Новичок
  • 3
  • 0 / 0
Здравствуйте.
Нужен калькулятор типа как здесь: http://delajoom.ru/index.php/demonstracija-raboty/kalkulator-stoimosti-rolstaven
только вид продукции наружной рекламы - световой короб
Наличие привязки картинок к select обязательна
Кто может сделать подобный калькулятор?
Пишите по адресу sherapet@yandex.ru
В письме не забудьте указать стоимость и сроки.
*

sherapet

  • Новичок
  • 3
  • 0 / 0
Готов помочь, но только после 16 марта. Если к тому времени не сделаете себе калькулятор, то обращайтесь
Здравствуйте. очень нужна форма калькулятора типа "Расчет стоимости рольставень" как здесь http://delajoom.ru/index.php/demonstracija-raboty/kalkulator-stoimosti-rolstaven
*

sherapet

  • Новичок
  • 3
  • 0 / 0
Всем привет!
Помогите пожалуйста разобраться с формой подсчета светового короба. Три дня подряд колдую, не могу понять где в коде собака порылась?
Суть проблемы в следующем:
Если указать параметры ширины и высоты, то показатель общей площади выводится верно. Далее выбираем форму короба, затем материал рекламной поверхности, тип подсветки и количество "1" шт., общая стоимость выводится верно, а показатель стоимости со скидкой дублирует стоимость без скидки. Но это еще пол беды.
Когда меняешь количество общая стоимость начинает врать. Причем, когда меняешь ширину и высоту при выбранном количестве "1" шт. снова показатели общей стоимости выводятся правильно.
Обнаружил еще косяк, который, судя по всему, и является причиной ошибки  в подсчете: если не указывать габариты и количество штук, а выбрать только пункты из вкладок "Форма светового короба", "Материал рекламной поверхности" и "Тип подсветки", то в поле "Цена за 1 кв. м" появится действительная и правильная сумма. И вот эта самая сумма в дальнейшем, постоянно прибавляется к уже правильной сумме обшей стоимости.
Не знаю получилось ли у меня понятным для всех языком изложить суть проблемы?
Помогите, пожалуйста!
----------------------------
Код формы:
<style>
.input {
border: 1px solid #B4B4B4;
border-radius: 6px;
color: #000000;
padding-left: 4px;
}
</style>
<div class="form_descr"></div>
<form action="index.php"  name="calcForm" id="calcForm" method="post">
<script>
function getImg(param, obj, mat_obj)

if(mat_obj=='profil') 
{
switch(param){   
   case '2':      
document.getElementById(obj).src = '/images/FormCalc/Forma.jpg';   
document.getElementById("profil_hid").value="0";   
   break;         
   case '3':      
document.getElementById(obj).src = '/images/FormCalc/profil_ag77.jpg';
document.getElementById("profil_hid").value="800";   
   break;         
   case '4':      
document.getElementById(obj).src = '/images/FormCalc/profil_aer56.jpg';
document.getElementById("profil_hid").value="800";   
   break;
   case '5':      
document.getElementById(obj).src = '/images/FormCalc/profil_aer44.jpg';
document.getElementById("profil_hid").value="800";
   break;
   }
document.forms['calcForm'].elements['profil_hid'].fireEvent('change');   
}
if(mat_obj=='upr')
{
switch(param){   
   case '2':      
document.getElementById(obj).src = '/images/FormCalc/Material.jpg';   
document.getElementById("upr_hid").value="0";   
   break;         
   case '3':      
document.getElementById(obj).src = '/images/FormCalc/privod2.jpg';   
document.getElementById("upr_hid").value="3200";   
   break;         
   case '4':      
document.getElementById(obj).src = '/images/FormCalc/privod3.jpg';   
document.getElementById("upr_hid").value="3700";   
   break;
   case '5':      
document.getElementById(obj).src = '/images/FormCalc/privod2.jpg';   
document.getElementById("upr_hid").value="4700";   
   break;
   case '6':      
document.getElementById(obj).src = '/images/FormCalc/privod1.jpg';   
document.getElementById("upr_hid").value="5700";   
   break;
   }   
document.forms['calcForm'].elements['upr_hid'].fireEvent('change');   
}
if(mat_obj=='ustan')
{
switch(param){   
   case '2':      
document.getElementById(obj).src = '/images/FormCalc/Podsvetka.jpg';
document.getElementById("ustan_hid").value="0";         
   break;         
   case '3':      
document.getElementById(obj).src = '/images/FormCalc/rolstavni_montag02.jpg';
document.getElementById("ustan_hid").value="2000";      
   break;   
   case '4':      
document.getElementById(obj).src = '/images/FormCalc/rolstavni_montag01.jpg';
document.getElementById("ustan_hid").value="4800";         
   break;         
   }   
document.forms['calcForm'].elements['ustan_hid'].fireEvent('change');   
}
}
</script>
<input type="hidden" name="profil_hid" id="profil_hid">
<input type="hidden" name="upr_hid" id="upr_hid">
<input type="hidden" name="ustan_hid" id="ustan_hid" >
<h2>Расчет стоимости световых и несветовых коробов</h2>
<table border="0" cellpadding="0" cellspacing="5">
<tbody><tr style="padding-top: 15px;">
<td>
Ширина:
<br>
<input class="input" size="5" name="width" value=""> см.
</td>
<td rowspan="7" valign="middle" align="center">
<img src="/images/FormCalc/Forma.jpg" alt="" id="profkart" width="384" border="0" height="164">
<br>
<img src="/images/FormCalc/Material.jpg" alt="" name="privkart" id="privkart" width="384" border="0" height="164">
<br>
<img src="/images/FormCalc/Podsvetka.jpg" alt="" name="montkart" id="montkart" style="margin-left: 10px;" width="374" border="0" height="150">
</td>
</tr>
<tr>
<td>
Высота:
<br>
<input class="input" size="5" name="height" value=""> см.
</td>
</tr>
<tr>
<td>
Форма светового короба:
<br>
<select class="input" name="profil" id="profil" onchange="getImg(this.value, 'profkart','profil');">
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Короб простой формы</option>
<option value="4">Формы средней сложности</option>
<option value="5">Произвольные формы</option>
</select>
</td>
</tr>
<td valign="bottom">
Материал рекламной поверхности:&nbsp;
<br>
<select class="input" name="upr" id="upr" onchange="getImg(this.value, 'privkart','upr');" >
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Баннер</option>
<option value="4">Сотовый поликарбонат</option>
<option value="5">Оргстекло (акрил)</option>
<option value="6">Композит</option>
</select>
</td>
</tr>
<tr>
<td>
Тип подсветки:
<br>
<select class="input" name="ustan" id="ustan" onchange="getImg(this.value, 'montkart','ustan');">
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Люминесцентные лампы</option>
<option value="4">Светодиодные модули</option>
</select>
</td>
</tr>
<tr>
<td>
Количество:
<br>
<input class="input" size="5" value="0" name="kolvo"> шт.
</td>
</tr>
<tr>
<td colspan="2" valign="bottom" height="50">
<input onclick="document.forms['calcForm'].elements['ustan_hid'].fireEvent('change')" value="Посчитать" type="button" name="option" class="button">
<br>
<input class="button" type="reset" name="reset" value="Очистить" onclick="change(),newdoc()" />
</td>
</tr>
</tbody></table>
<div>
Площадь конструкции: <span id="rez3_disp">&nbsp;</span><input type="hidden" id="rez3" name="rez3" value=""/> кв.м
<br>
Цена за 1 кв. м: <span id="rez4_disp">&nbsp;</span><input type="hidden" id="rez4" name="rez4" value=""/> руб
<br>
Цена со скидкой 5%: - <span id="rez2_disp">&nbsp;</span><input type="hidden" id="rez2" name="rez2" value=""/> руб
<br>
Цена без скидки <span id="rez1_disp">&nbsp;</span><input type="hidden" id="rez1" name="rez1" value=""/> руб<br>
</div>
<div name="rast" id="rast">
</div>
<br>
<p>При оформлении предварительного заказа через интернет, Вы получаете скидку 5% на изготовление наружной рекламы.</p>
<p>Изготовление наружной и интерьерной рекламы можно заказать прямо сейчас, кликнув на кнопке «Отправить». Наши специалисты помогут Вам выбрать тип рекламной конструкции, качественные и недорогие материалы для ее изготовления, произведут замеры и монтаж рекламных конструкций.</p>
--------------------------------------------
Формула подсчета:

rez1=(({profil_hid}+{upr_hid}+{ustan_hid})*{rez3})*{kolvo}
rez2=({rez3}*({profil_hid}+{upr_hid}+{ustan_hid})*{kolvo})-{skidka}
rez3=(({width}*{height})*{kolvo})/10000
rez4={profil_hid}+{upr_hid}+{ustan_hid}
skidka=(0.05*{rez3}*({profil_hid}+{upr_hid}+{ustan_hid})*{kolvo})
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
У вас много написано. Но если сумма прибавляется к сумме - то неверна формула.
По вашей формуле - у вас сначала вычисляется REZ2, который зависит от REZ3, который вычисляется позже. Такого не должно быть.
Также обратил внимание на 1 и 4 формулу:

x1=(a+b+c)*3*k
x4=a+b+c

выходит, что лучше сделать так:

x4=a+b+c
x1=x4*3*k

ну и по итогу:

x4=a+b+c
x3=(w+h)*k/10000
x1=x3*x4*k
s=0.05*x3*x1
x2=x1-s

Я мог ошибиться - перепроверьте

Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

elma666

  • Осваиваюсь на форуме
  • 23
  • 0 / 1
Доброго времени суток!
Такая проблема: Joomla 2.5 Поставила компонент и плагин (3) Но увы компонент не открывается. Белый лист и все((( Как быть?
*

justicebk

  • Новичок
  • 1
  • 0 / 0
Добрый день!
Необходима установка и настройка компонента на мой сайт + создание формы по моему запросу (расчет электромонтажных работ)
Все предложения готов обсудить в личке, почте (justicebk@gmail.com), или скайпе (justicebk)
Спасибо
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Доброго времени суток!
Такая проблема: Joomla 2.5 Поставила компонент и плагин (3) Но увы компонент не открывается. Белый лист и все((( Как быть?
Для Joomla 2.5  нужно ставить плагин версии 1,7
*

kentoff

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Такая проблема: Joomla 2.5 Поставила компонент и плагин (3) Но увы компонент не открывается. Белый лист и все((( Как быть?
У меня таже проблема но на 3.3.1 Joomla ... Почему разраб молчит то?
++++++
Обновил Joomla до 3.3.3 но белый экран при создании...
Разраб... может с чем-то конфликтует? может чего-то нет? фреймворка какого-либо (bootstrap есть, jQuery подгружается)
« Последнее редактирование: 28.07.2014, 14:19:27 от kentoff »
*

dr.red

  • Захожу иногда
  • 52
  • 0 / 0
У меня таже проблема но на 3.3.1 Joomla ... Почему разраб молчит то?
++++++
Обновил Joomla до 3.3.3 но белый экран при создании...
Разраб... может с чем-то конфликтует? может чего-то нет? фреймворка какого-либо (bootstrap есть, jQuery подгружается)
У меня та-же проблема, после установки на Joomla 3.3.1 в админке у компонента выдало ошибку
Цитировать
Declaration of FormCalcController::display() should be compatible with that of JControllerLegacy::display() in D:\OpenServer\domains\test-joomla331.ua\www\administrator\components\com_formcalc\controller.php on line 35
А после того как нажал создать, выдало белый экран с 2 ошибками:
Цитировать
Strict Standards: Declaration of FormCalcController::display() should be compatible with that of JControllerLegacy::display() in D:\OpenServer\domains\test-joomla331.ua\www\administrator\components\com_formcalc\controller.php on line 35
______________________________
Fatal error: Declaration of TableFormCalc::bind() must be compatible with that of JTableInterface::bind() in D:\OpenServer\domains\test-joomla331.ua\www\administrator\components\com_formcalc\tables\formcalc.php on line 90
*

nilludasa

  • Новичок
  • 2
  • 0 / 0
Здравствуйте! Делаю сайт, мне необходимо создать форму расчета (строительные работы), пример и формулы есть, нужно их воплотить в жизнь, кто сможет? Пишите в личку или zakaz@fundament-spb.ru
*

dr.red

  • Захожу иногда
  • 52
  • 0 / 0
Здравствуйте! Делаю сайт, мне необходимо создать форму расчета (строительные работы), пример и формулы есть, нужно их воплотить в жизнь, кто сможет? Пишите в личку или zakaz@fundament-spb.ru
Мне кажется что этот калькулятор подходит, но чего-то он глючит
*

Pelmen1

  • Новичок
  • 6
  • 0 / 0
У  меня Joomla 2.5 после отправки данных не уходит письмо админу.
подскажите как настроить?
метод отправки в Joomla рабочий. но не выдаёт ни сообщения, и не отправляет. прошу о помощи.
*

Pelmen1

  • Новичок
  • 6
  • 0 / 0
похоже надо переписать процедуру отправки почты в этом компоненте. Он использует свою процедуру или пользуется методом из самой Joomla?
Потому что отправка из RSForm работает нормально.
*

bnet

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
3.3.3 то-же самое, белый экран при создании...
если что php5-cli-5.3.28
« Последнее редактирование: 06.08.2014, 19:33:33 от bnet »
*

EDIK

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
3.3.3 то-же самое, белый экран при создании...
Аналогично
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент 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
Просмотров: 32565
Последний ответ 17.12.2014, 06:20:05
от EndVal
Компонент " Просто каталог Joomla + Mixmarket Joomla "

Автор DelaShop

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