|
DelaShop
|
 |
« : 02.01.2011, 20:29:40 » |
|
Идея разработки универсального компонента «Формы-калькуляторы» в котором сочетался функционал калькулятора 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, 12:46:51 от DelaShop »
|
Записан
|
|
|
|
| |
|
|
urist
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #2 : 21.01.2013, 00:38:49 » |
|
скажите куда сохраняються данные с formcalc? на почту мне приходит только файл, а мейл, имя и телефон не приходит. подскажите пожалуйста как настроить
|
|
|
|
|
Записан
|
|
|
|
|
DelaShop
|
 |
« Ответ #3 : 23.01.2013, 17:39:02 » |
|
Этих данных недостаточно для помощи, шлите что пишите во всех вкладках... Тогда о чем то конкретном можно говорить.
|
|
|
|
|
Записан
|
|
|
|
Goliaf
Новичок
Репутация: +0/-0
Offline
Пол: 
Сообщений: 7
|
 |
« Ответ #4 : 24.01.2013, 03:07:18 » |
|
Делаю калькулятор с двумя слайдерами на 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}
|
|
|
|
|
Записан
|
|
|
|
tomclancys
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 87
|
 |
« Ответ #5 : 24.01.2013, 06:26:02 » |
|
Всё работало на протяжении 3-4 месяцев на Joomla 2.5. Позавчера заметили что после нажатия на кнопку отправить. Открывается белая страница. В режиме отладки всё нормально работает. Я так понимаю большая нагрузка идёт при отправке или что? Куда копать.
|
|
|
|
|
Записан
|
|
|
|
tomclancys
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 87
|
 |
« Ответ #6 : 24.01.2013, 13:21:29 » |
|
После отправки вылазит ошибка: 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
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #7 : 25.01.2013, 10:25:48 » |
|
скажите где узнать переменные для formcalc, я знаю только имя, почта, телефон ивставить файл, какие еще есть значения? и можно ли добавлять не один файл или чтоб при добавлении одного появлялось второе поле для файлов?
|
|
|
|
|
Записан
|
|
|
|
|
|
urist
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #9 : 25.01.2013, 21:11:24 » |
|
спасибо
|
|
|
|
|
Записан
|
|
|
|
aprol73
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 34
|
 |
« Ответ #10 : 28.01.2013, 10:46:26 » |
|
аккуратнее с этим компонентом, там есть вот такая штука: <?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
Завсегдатай
   
Репутация: +44/-1
Offline
Пол: 
Сообщений: 548
:)
|
 |
« Ответ #11 : 28.01.2013, 12:14:24 » |
|
аккуратнее с этим компонентом, там есть вот такая штука: <?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(); } которая может на вашем сайте выдать неприятные неожиданности... интересно зачем?
|
|
|
|
|
Записан
|
|
|
|
Natalia005
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #12 : 29.01.2013, 12:58:37 » |
|
Подскажите как вставить форму в материал?
|
|
|
|
|
Записан
|
|
|
|
Goliaf
Новичок
Репутация: +0/-0
Offline
Пол: 
Сообщений: 7
|
 |
« Ответ #13 : 30.01.2013, 04:47:01 » |
|
Подскажите как вставить форму в материал?
Вам сюда: http://delajoom.ru/index.php/instrkucija-po-rabote/plagin-formy-kalkulator-joomla
|
|
|
|
|
Записан
|
|
|
|
Natalia005
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #14 : 30.01.2013, 07:17:07 » |
|
Спасибо все понятно.Вот только у меня Joomla 3.0 а плагина для неё нет.
|
|
|
|
|
Записан
|
|
|
|
Goliaf
Новичок
Репутация: +0/-0
Offline
Пол: 
Сообщений: 7
|
 |
« Ответ #15 : 30.01.2013, 13:34:11 » |
|
Спасибо все понятно.Вот только у меня Joomla 3.0 а плагина для неё нет.
Пож. Вы пробуйте ставить )) не бойтесь - не укусит. Сам компонент же установился? Вот и плагин должен... По описанию он и 3.хх поддерживает
|
|
|
|
|
Записан
|
|
|
|
urist
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #16 : 31.01.2013, 10:27:14 » |
|
У меня возникла новая дилема, я с помощью данной формы хочу принимать заказы на печать фото и т.п. тоесть мне нужно чтоб человек мог загрузить не одно фото, а сразу несколько, а добавлять 5, 10, 20 строк загрузить фото не подходит, как это можно реализовать или хотябы чтоб при загрузке первого фото окно загрузки следующего само появлялось. Или возможно с каким-то файл обменником его скрестить. Подскажите пожалуйста, заранее спасибо
|
|
|
|
|
Записан
|
|
|
|
morgan6
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #17 : 31.01.2013, 17:54:26 » |
|
Заранее извиняюсь, я не силен в 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>
|
|
|
|
|
Записан
|
|
|
|
Natalia005
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #18 : 01.02.2013, 07:38:28 » |
|
Пож. Вы пробуйте ставить )) не бойтесь - не укусит. Сам компонент же установился? Вот и плагин должен... По описанию он и 3.хх поддерживает
Все отлично немного подправила sql запрос в formcalc.php и заработало))
|
|
|
|
|
Записан
|
|
|
|
poopkin
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #19 : 01.02.2013, 21:19:49 » |
|
Вечер добре. Можно ли переменную из одной формы вставить в формулу другой формы на другой странице? Или все вычисления работают в пределах одной формы?
|
|
|
|
|
Записан
|
|
|
|
arrow
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 10
|
 |
« Ответ #20 : 03.02.2013, 00:08:03 » |
|
День добрый. Может кто сталкивался: в IE7 и IE8 выдает ошибку и не считает: SCRIPT438: Объект не поддерживает свойство или метод "getElements" formcheck.js, строка 304 символ 4
при том что в IE9 IE10 opera Firefox и crome - такой ошибки нет.
Joomla 2.5.8 Компонент версии 1.6
Что бы это такое могло быть?
|
|
|
|
« Последнее редактирование: 03.02.2013, 03:54:58 от arrow »
|
Записан
|
|
|
|
ki4
Новичок
Репутация: +0/-0
Offline
Сообщений: 1
|
 |
« Ответ #21 : 04.02.2013, 05:44:16 » |
|
Доброго времени суток! Подскажите пожайлуста, как сделать уведомление об отправке на e-mail во всплывающем окне., либо сделать редирект на определенную страницу при успешной отправке.
|
|
|
|
« Последнее редактирование: 04.02.2013, 05:56:03 от ki4 »
|
Записан
|
|
|
|
tminov
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #22 : 05.02.2013, 21:24:43 » |
|
Здравствуйте! Подскажите пожалуйста как реализовать в калькуляторе следующее. Есть первое поле для ввода произвольной цифры И есть ещё два или более дополнительных полей для ввода цифр, как вывести всплывающую подсказку(предупреждение) если сумма последних полей отличается от первого?
|
|
|
|
|
Записан
|
|
|
|
Exclus
Новичок
Репутация: +0/-0
Offline
Сообщений: 5
|
 |
« Ответ #23 : 09.02.2013, 20:04:05 » |
|
В чем может быть проблема, выдает такую ошибку в скрипте: 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
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #24 : 10.02.2013, 20:58:03 » |
|
Создал форму, все кроме емаил работает. Скажите в чем поблема, второй вечер мучаюсь над этой бедой, вот форма
Имя* <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
Разработчик расширений для Joomla 1.0
Репутация: +48/-0
Offline
Пол: 
Сообщений: 190
|
 |
« Ответ #25 : 11.02.2013, 09:42:11 » |
|
Контактный телефон* <input type="text" name="phone" class="validate['required','phone'] >
А что кавычки не закрыты (class="validate['required','phone']" >)
|
|
|
|
|
Записан
|
|
|
|
gidtv
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #26 : 11.02.2013, 21:07:04 » |
|
Здравствуйте. На этапе тестирования не разобрался со вставкой картинок. Попробовал загрузить ваш скрипт, но непонятно, откуда подтягиваются картинки.
|
|
|
|
|
Записан
|
|
|
|
urist
Новичок
Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #27 : 12.02.2013, 10:21:37 » |
|
fs-p, спасибо, закрыл и почта стала отображаться, выручил
|
|
|
|
|
Записан
|
|
|
|
Shkipper
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #28 : 13.02.2013, 20:31:34 » |
|
Доброго времени суток! Подскажите пожалуйста как написать формулу, что бы она считала различный процент в зависимости от размера введенной суммы. т.е. если клиент вводит, предположим, сумму 10000, то оплата будет 4 процента от суммы но не менее 100, если 15000, то 3 процента, а если выше то 2 процента?
|
|
|
|
|
Записан
|
|
|
|
andreytve84
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 21
|
 |
« Ответ #29 : 14.02.2013, 17:21:08 » |
|
не считает, пробовал по всякому, на разных сайтах, не могу понять в чём проблема, подскажите: <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
|
|
|
|
|
Записан
|
|
|
|
|