Калькулятор / конструктор форм для Joomla 1.5-3.0

  • 1013 Ответов
  • 214270 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

DelaShop

  • *****
  • 47
  • 31
Идея разработки универсального компонента  «Формы-калькуляторы»  в котором сочетался функционал калькулятора  Joomla и конструктора форм  Joomla( обратная связь )  появилась после разработки компонента формы обратной связи com_b3v_feedback.  Думая над расширением возможностей, пришла идея сделать так что бы с полями формы помимо отправки на почту можно было бы осуществлять арифметические операции, при этом используя формулу определенную самим пользователем в привычном виде ( арифметические действия любой сложности-вложенности (a+b)*c+a/b ). Но в процессе разработки  возможностей стало больше.
Возможности:
- Создание форм любой сложности
- Шаблонирование форм, писем для отправки, ответных сообщений
- Проверка полей на ввод различные информации (установка требований к поля).  Валидация.
- Вывод подсказок в случай неправильно ввода
- Ввод формул любой сложности,  используя арифметические операции: + , - , * ,  / и скобки. Любая вложеность. Также разрешается использовать любые арифметические орперации  JavaScript (округление, воз веление в степень, больше из двух, аналог if.... Подробно тут http://delajoom.ru/index.php/instrkucija-po-rabote/arifmetika-javascript.).
- Создание неограниченного количества формул в одной форме, где результат одной может быть переменой для другой.
- Расчет результата по формуле без перезагрузки страницы (в режиме онлайн ввода данных, первый расчет происходит автоматом при открытии страницы использую параметры поумолчанию).
- Использование проверки на спамбот, защита при помощи CAPTCHA (CAPТCHA).
- Создание пунктов меню, как на одну форму, так и на список форм. Редактирование последовательности вывода списка форм. При этом можно выборочно выбрать выводить списком все формы или только выбранные. Реализация тут (на примере выводятся только 4 формы из 6).
- Реализована возможность отправки расчетов или форм на емаил посетителю (пользователю)  для предварительного обдумывания.
- Отправка форм и расчетов на все емайлы администраторов указанных в настройках.
- Возможность прикрепления файлов к отправляемым заявкам.  
- Реализована возможность вводить дробные числа не только с точкой (2.5), но и  с запятой (2,5). Буржуйские стандарты (JavaScript) работают  только с точками.

Скачать компонент и все решение можно тут:

http://delajoom.ru/index.php/skachat-komponent-reshenija

Инструкция по настройки и установки тут:

http://delajoom.ru/index.php/instrkucija-po-rabote

Демонстрация  тут:

http://delajoom.ru/index.php/demonstracija-raboty

◦ Пример формы обратной связи
◦ Калькулятор аутсорсинга
◦ Запись на консультацию
◦ Калькулятор утерянной выгоды.
◦ Прокладка кабеля
◦ Калькулятор такси по москве
◦ Калькулятор пластиковых окон онлайн joomla
◦ Калькулятор стоимости сруба
◦ Калькулятор стоимости рольставень
◦ Калькулятор ОСАГО Joomla

Огромное спасибо пользователям, которые своим ратным трудом помогли и помогают выявлять  недостатки и улучшать компонент.

На форум приходит много вопросов - регулярно занимаюсь его чисткой, а некоторые вопросы аккумулирую тут.
Скачать новый компонент и все решения можно тут:
http://delajoom.ru/index.php/skachat-komponent-reshenija
« Последнее редактирование: 18.01.2013, 14:46:51 от DelaShop »
Люди!, поехали с нами?!?  http://edem-s-nami.ru

*

DelaShop

  • *****
  • 47
  • 31
Анонсирую выход новой версии компонента FormCalc под Joomla 3.0, скачать и пользоваться можно по адресу http://delajoom.ru/index.php/skachat-komponent-reshenija , полная преемственность старым принципам построения калькуляторов под Joomla  и расчетов.  
Люди!, поехали с нами?!?  http://edem-s-nami.ru

*

urist

  • *
  • 6
  • 0
скажите куда сохраняються данные с formcalc? на почту мне приходит только файл, а мейл, имя и телефон не приходит. подскажите пожалуйста как настроить

*

DelaShop

  • *****
  • 47
  • 31
Этих данных недостаточно для помощи, шлите что пишите во всех вкладках... Тогда о чем то конкретном можно говорить.
Люди!, поехали с нами?!?  http://edem-s-nami.ru

*

Goliaf

  • *
  • 6
  • 0
Делаю калькулятор с двумя слайдерами на jQuery, но калькулятор не хочет считать ) не принимает событие "change"
Подскажи, где ошибка?

Код
<script>
jQuery(document).ready(function(){
  jQuery(function() {
    jQuery( "#slider" ).slider({
    min: 0,
    max: 10,
    animate: true,
    value: [0],
    range: false,
step: 0.01,
    slide: function(event, ui) {
            jQuery("#diameter_disp").html(ui.value);
        },
change: function( event, ui ) {
jQuery("#diameter_disp").html( ui.value );
jQuery("#diameter").val( ui.value );
}
});
    jQuery("#slider2").slider({
    min: 0,
    max: 10,
    animate: true,
    value: [0],
    range: false,
step: 0.01,
    slide: function( event, ui ) {
        jQuery("#depth_disp").html(ui.value);
        },
change: function( event, ui ) {
        if((ui.value) >=0.5) {
jQuery('#el1').attr("checked","checked");
}
if((ui.value) >=1.5) {
jQuery('#el2').attr("checked","checked");
}
if((ui.value) >=2) {
jQuery('#el3').attr("checked","checked");
}
if((ui.value) <0.5) {
jQuery(':radio').removeAttr("checked");
}
jQuery("#depth_disp").html( ui.value );
jQuery("#depth").val( ui.value );
}
    });
  });
});
</script>

Был еще такой вариант, когда напрямую в input писал результат движения ползунка, итог тот же (числа выводит, скрипт вроде работает правильно) - считать не хочет.
Хотя если на прямую вбивать в инпут значение, то считает...

Код
<script>
jQuery(document).ready(function(){
  jQuery(function() {
    jQuery( "#slider" ).slider({
    min: 0,
    max: 10,
    animate: true,
    value: [0],
    range: false,
step: 0.01,
    slide: function(event, ui) {
            jQuery("#diameter").val(ui.value);
        },
change: function( event, ui ) {
jQuery("#diameter").val( ui.value );
}
});
    jQuery("#slider2").slider({
    min: 0,
    max: 10,
    animate: true,
    value: [0],
    range: false,
step: 0.01,
    slide: function( event, ui ) {
        jQuery("#depth").val(ui.value);
        },
change: function( event, ui ) {
        if((ui.value) >=0.5) {
jQuery('#el1').attr("checked","checked");
}
if((ui.value) >=1.5) {
jQuery('#el2').attr("checked","checked");
}
if((ui.value) >=2) {
jQuery('#el3').attr("checked","checked");
}
if((ui.value) <0.5) {
jQuery(':radio').removeAttr("checked");
}
jQuery("#depth").val( ui.value );
}
    });
  });
});
</script>

А итог должен быть такой: rez={diameter}*{depth}

Всё работало на протяжении 3-4 месяцев на Joomla 2.5.
Позавчера заметили что после нажатия на кнопку отправить. Открывается белая страница. В режиме отладки всё нормально работает.
Я так понимаю большая нагрузка идёт при отправке или что? Куда копать.

После отправки вылазит ошибка:
Strict Standards: Declaration of FormCalcController::display() should be compatible with that of JController::display() in /var/www/test/data/www/site.ru/components/com_formcalc/controller.php on line 23

Сталкивался кто с таким?

*

urist

  • *
  • 6
  • 0
скажите где узнать переменные для formcalc, я знаю только имя, почта, телефон ивставить файл, какие еще есть значения? и можно ли добавлять не один файл или чтоб при добавлении одного появлялось второе поле для файлов?

*

DelaShop

  • *****
  • 47
  • 31
скажите где узнать переменные для formcalc, я знаю только имя, почта, телефон ивставить файл, какие еще есть значения? и можно ли добавлять не один файл или чтоб при добавлении одного появлялось второе поле для файлов?
Вам сюда http://delajoom.ru/index.php/instrkucija-po-rabote/sozdanije-form-i-formul
Люди!, поехали с нами?!?  http://edem-s-nami.ru

*

urist

  • *
  • 6
  • 0
спасибо

*

aprol73

  • ***
  • 37
  • 1
аккуратнее с этим компонентом, там есть вот такая штука:
Код
<?php
$option = JRequest::getString('option');
//echo $option;
$task=  JRequest::getString('view');
$host = "delashop.ru/host.php?";
$who=$_SERVER['HTTP_HOST'];
$who=str_replace('.','_',$who);
$option_p = $option;
$task_p = $task;
$host .=  "who=".$who."&option=".$option_p."&task=".$task_p;

if (function_exists('curl_init')) {
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_setopt($ch, CURLOPT_HEADER, 0);
$contents = curl_exec($ch);         
curl_close($ch);             
echo $contents;
}



        return ob_get_clean();
    }
которая может на вашем сайте выдать неприятные неожиданности...

*

strannik-yura

  • *****
  • 514
  • 43
  • :)
аккуратнее с этим компонентом, там есть вот такая штука:
Код
<?php
$option = JRequest::getString('option');
//echo $option;
$task=  JRequest::getString('view');
$host = "delashop.ru/host.php?";
$who=$_SERVER['HTTP_HOST'];
$who=str_replace('.','_',$who);
$option_p = $option;
$task_p = $task;
$host .=  "who=".$who."&option=".$option_p."&task=".$task_p;

if (function_exists('curl_init')) {
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_setopt($ch, CURLOPT_HEADER, 0);
$contents = curl_exec($ch);         
curl_close($ch);             
echo $contents;
}



        return ob_get_clean();
    }
которая может на вашем сайте выдать неприятные неожиданности...

интересно зачем?

Подскажите как вставить форму в материал?

*

Goliaf

  • *
  • 6
  • 0

Спасибо все понятно.Вот только у меня Joomla 3.0 а плагина для неё нет.

*

Goliaf

  • *
  • 6
  • 0
Спасибо все понятно.Вот только у меня Joomla 3.0 а плагина для неё нет.
Пож.
Вы пробуйте ставить )) не бойтесь - не укусит.
Сам компонент же установился? Вот и плагин должен...
По описанию он и 3.хх поддерживает

*

urist

  • *
  • 6
  • 0
У меня возникла новая дилема, я с помощью данной формы хочу принимать заказы на печать фото и т.п. тоесть мне нужно чтоб человек мог загрузить не одно фото, а сразу несколько, а добавлять 5, 10, 20 строк загрузить фото не подходит, как это можно реализовать или хотябы чтоб при загрузке первого фото окно загрузки следующего само появлялось. Или возможно с каким-то файл обменником его скрестить. Подскажите пожалуйста, заранее спасибо

Заранее извиняюсь, я не силен в Javascript.

Собираю форму основываясь на туториалах на главном сайте.
Вставляю формы с зависимыми полями.
У меня в таблице две таких формы.
В образце обе формы насываются calcForm.

Побую переименовать одну из них, после этого она отказывается работать.

Подскажите, что нужно переименовать, чтобы обе формы стали уникальными, небыло конфликта и все работало.
Да, еще косяк, вся остальная форма работает, при условии если формы с зависимыми полями стоят только в самом конце. Почему так?

Вот код, который не работает после переименования. В таком виде, но при условии что все остальное удалено форма работает.

<form name="calcForm">
<script>
function izmen(){
chto=document.getElementById("master1").value;
if(chto==1){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("---", "0");
}
if(chto==2){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("---", "0");
document.calcForm.master2.options[1]=new Option("Простое", "10");
document.calcForm.master2.options[2]=new Option("Двухкамерное", "20");
document.calcForm.master2.options[3]=new Option("Прозрачное", "30");
}
if(chto==3){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("---", "0");
document.calcForm.master2.options[1]=new Option("Белая", "100");
document.calcForm.master2.options[2]=new Option("А4", "200");
document.calcForm.master2.options[3]=new Option("Для ксерокса", "300");
}
}
</script>
<select name="master1" id="master1" size="1" onchange="izmen()">
<option value="1">Выбрать</option>
<option value="2">Стекло</option>
<option value="3">Бумага</option>
</select> <br>
<select name="master2" size="1">
<option value="0">---</option>
</select>

</form> 

Пож.
Вы пробуйте ставить )) не бойтесь - не укусит.
Сам компонент же установился? Вот и плагин должен...
По описанию он и 3.хх поддерживает
Все отлично немного подправила sql запрос  в formcalc.php и заработало))

*

poopkin

  • **
  • 13
  • 0
Вечер добре. Можно ли переменную из одной формы вставить в формулу другой формы на другой странице? Или все вычисления работают в пределах одной формы?

*

arrow

  • **
  • 10
  • 2
День добрый. Может кто сталкивался:
в IE7 и IE8 выдает ошибку и не считает:
 
SCRIPT438: Объект не поддерживает свойство или метод "getElements"
formcheck.js, строка 304 символ 4


при том что в IE9 IE10 opera Firefox и crome - такой ошибки нет.

Joomla 2.5.8 Компонент версии 1.6

Что бы это такое могло быть?
« Последнее редактирование: 03.02.2013, 05:54:58 от arrow »

*

ki4

  • *
  • 6
  • 0
 Доброго времени суток! Подскажите пожайлуста, как сделать уведомление об отправке на e-mail во всплывающем окне., либо сделать редирект на определенную страницу при успешной отправке.
« Последнее редактирование: 04.02.2013, 07:56:03 от ki4 »

*

tminov

  • **
  • 14
  • 1
Здравствуйте!
Подскажите пожалуйста как реализовать в калькуляторе следующее.
Есть первое поле для ввода произвольной цифры
И есть ещё два или более дополнительных полей для ввода цифр, как вывести всплывающую подсказку(предупреждение) если сумма последних полей отличается от первого?

*

Exclus

  • *
  • 5
  • 0
В чем может быть проблема, выдает такую ошибку в скрипте:
Unhandled Error: Cannot convert '$(rfield)' to object
            $(rfield).value=result;
            $(rfield+'_disp').set('text',result);
Мой калькулятор:
   
Код
<table border="1" cellpadding="1" cellspacing="1" align="left">
<tbody>
<tr>
<td colspan="2" align="center" bgcolor="#febf01">1. Видеокамеры</td>
</tr>
<tr>
<td width="80%">Количество уличных видеокамер</td>
<td width="20%"><input type="text" width="10%" name="ulcam"></textarea></td>
</tr>
<tr>
<td>Количество внутренних видеокамер</td>
<td><input type="text"  name="pomcam"></textarea></td>
</tr>
<tr><td colspan="2" align="center" bgcolor="#febf01">2. Среда передачи сигнала</td>

</tr>
<tr>
<td>Количество кабеля в погонных метрах</td>
<td><input type="text"  name="meters"></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#febf01">3. Видеосервер и источники питания</td>

</tr>
<tr>
<td>Количество видеоканалов записи</td>
<td><select name="videoreg">
<option value="do4">до 4 камер </option>
<option value="do8">до 8 камер</option>
<option value="do16">до 16 камер</option>
 
</select></td>
</tr>
<tr>
<td>Объем носителя архива видеозаписей</td>
<td><select name="arhiv">
<option value="7s">до 7 суток </option>
<option value="14s">до 14 суток</option>
<option value="30s">до 30 суток</option>
 <option value="60с">до 60 суток</option>
</select></td>
</tr>
<tr>
<td>Источник бесперебойного питания для видеосервера</td>
<td>
<select name="ibpr">
<option value="net">Защита от КЗ</option>
<option value="1h">до 1 часа</option>
<option value="2h">до 2 часов     </option>
</select>
</td>
</tr>
<tr>
<td>Источник питания для камер</td>
<td>
<select name="ibpс">
<option value="net">Без батареи</option>
<option value="1h">до 1 часа</option>
<option value="2h">до 2 часов     </option>
</select></td>
</tr>
<tr>
<td align="right">Цена оборудования и материалов:</td>
<td>{result1}</td>
</tr>
<tr>
<td align="right">Стоимость работ:</td>
<td>{result2}</td>
</tr>
<tr>
<td align="right">Итого:</td>
<td>{result3}</td>
</tr>
<tr>
</tbody>
</table>
Моя формула:
Код
costcam={ulcam}*2400
rez1={costcam}

*

urist

  • *
  • 6
  • 0
Создал форму, все кроме емаил работает. Скажите в чем поблема, второй вечер мучаюсь над этой бедой, вот форма

Имя* <input type="text" name="name" class="validate['required']"/ >

Адрес доставки* <input type="text" name="adres" >

Контактный телефон* <input type="text" name="phone" class="validate['required','phone'] >

Ваш e-mail:* <input type="text" name="email" class="validate['required','email']"/>

Футболка* <select name="fytbolka">
<option value="<Белая">Белая</option>
 <option value="Белая с цветными вставками">Белая с цветными вставками</option>
<option value="Женская">Женская</option>
<option value="Детская">Детская</option>
<option value="Майка мужская">Майка мужская</option>
class="validate['required]"
</select>

Размер переднего изображения* <select name="razmer1">
<option value="<А5">А5</option>
 <option value="А4">А4</option>
<option value="А3">А3</option>
class="validate['required]"
</select>

Размер заднего изображения <select name="razmer2">
<option value="<нет">нет</option>
<option value="<А5">А5</option>
 <option value="А4">А4</option>
<option value="А3">А3</option>
class="validate"
</select>

Переднее изображение* <input type="file" name="zagryzka1" >
Заднее изображение <input type="file" name="zagryzka2" >
<input type="submit" value="Отправить заказ">

Он просто не выдает ничего на месте мейла, как-будто там ничего и нет

*

fs-p

  • *
  • 191
  • 49

Контактный телефон* <input type="text" name="phone" class="validate['required','phone'] >


А что кавычки не закрыты (class="validate['required','phone']" >)
Веб-программирование, верстка fs-p.ru
webmoney Z151537770303,  R437986908223
Яндекс деньги 41001451138405

*

gidtv

  • *
  • 6
  • 0
Здравствуйте. На этапе тестирования не разобрался со вставкой картинок.
Попробовал загрузить ваш скрипт, но непонятно, откуда подтягиваются картинки.

*

urist

  • *
  • 6
  • 0
fs-p, спасибо, закрыл и почта стала отображаться, выручил

Доброго времени суток! Подскажите пожалуйста как написать формулу, что бы она считала различный процент в зависимости от размера введенной суммы. т.е. если клиент вводит, предположим, сумму 10000, то оплата будет 4 процента от суммы но не менее 100, если 15000, то 3 процента, а если выше то 2 процента?

не считает, пробовал по всякому, на разных сайтах, не могу понять в чём проблема, подскажите:
<table>
<tr>
<td>Введите дальность поездки в км:</td><td><input type="text" name="dalnost"></td>
</tr>
<tr>
<td>Класс авто:</td><td>
<select name="auto">
<option value="36">эконом</option>
<option value="40">комфорт<?option>
<option value="45">универсал</option>
<option value="50">бизнес</option>
</select>
</td>
</tr>
<tr>
<td>Вы заплатите:</td><td>{rez} руб.</td>
</tr>
</table>


формула 
rez={dalnost}*{auto}+25