Добрый день всем
Подскажите пожалста такой модуль, который бы считал стоимость потолков (к примеру, но вообще именно такое задание) по типу:
http://www.sprestij.ru/calc_req.php
Это видимо должен быть некий обработчик форм... его конечно можно просто ручками написано на странице из action формы, но это не сильно то удобно... да и как например указывать значения выбранных полей для формы (например вываливающийся список и потолки из франции - множитель на 1,5 а из россии - 1)... ? Для пользователей это будет убийственно
Таким образом нужен какой-то указатель значений для полей и обработчик по этим полям (где указывать формулу)... вообщем. подскажите как сделать пожалуйста
Комментарии
Наверное можно за основу взять Views с Exposed filters, и полученную форму довести до нормального состояния, переписав phptemplate_views_filters() в template.php -- http://drupal.org/node/220200. А вставить какие-то формулы и обработку значений можно при помощи хуков Views -- http://views2.logrus.com/doc/html/group__views__hooks.html.
Но когда мне пришлось делать калькулятор, сам написал модуль. Там описание массива с формой больше всего времени занимает, если серьезный калькулятор.
Можешь поделиться модулем? Очень нужно сейчас!
Вот примерный код помощника подбора товаров. Он для Drupal 5, в нем нет валидации, не пойми как используется global-переменная, используются функция темизации из уберкарта, сбилась часть отступов и другие недостатки
В базу ничего не сохраняется. Человек заполняет форму, и после ее отправки на той же странице ниже формы получает результаты подбора / расчета.
<?php function select_product_menu($may_cache) {
$items = array();
$items[] = array(
'path' => 'select_conditioner',
'title' => t('Подобрать товар'),
'callback' => 'select_product_form',
'type' => MENU_CALLBACK,
'access' => user_access('access content')
);
return $items;
}
function
select_product_my_form() {$form = array();
$form['#redirect'] = false;
$form['warming'] = array(
'#type' => 'checkbox',
'#title' => 'Наличие такой-то функции'
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Подобрать')
);
return $form;
}
function
select_product_my_form_submit($form_id, $form_values) {// Здесь для $form_values применяются формулы
// ...
// Дальше на основе рассчитанных значений формируется условие для SQL
$where = " and p.field_cooling_capacity_value >= $capacity_total";
$sql = "
SELECT distinct n.nid
FROM {node} n
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {content_type_product} as p on n.nid = p.nid
WHERE n.status = 1 $where
and (tn.tid = 20 or tn.tid = 28) and field_max_units_value >= $room_count
ORDER BY $order
LIMIT 6";
$result = db_query($sql);
$products = array();
while ($node = db_fetch_object($result)) {
$products[] = $node->nid;
}
global $output_select;
$output_select = '';
$output_select .= '<h1>Результаты подбора</h1>' . theme('uc_catalog_products', $products);
}
function
select_product_form() {$output = '';
$output .= drupal_get_form('select_product_my_form');
if ($_POST) {
global $output_select;
$output .= $output_select;
}
return $output;
}?>
Спасибо за хороший пример!!! Для 6-го Друпала сделал калькулятор фотосъемки по аналогии, немного поменял код. В частности, убрал глобальную переменную. Вместо нее немного перестроил функцию прорисовки формы (select_product_form), вот мой текст этой функции
function photocalc_calcform()
{
if ($_POST) {
$output = photocalc_calcform_result();
}
else {
$output = drupal_get_form('photocalc_calcform_get');
}
$output = '<div class="content">'.$output.'</div>';
return $output;
}
И убрал submit (select_product_my_form_submit). Вместо него в функции photocalc_calcform_result смотрю значения в $_POST.
Еще прикрутил немного Javascript-а, чтобы не рисовать клиентам лишние поля, которые не надо заполнять при определенных условиях.
Еще сделаю сохранение в базу CRM и уведомление по email при заполнении, может быть капчу получится вставить - и будет вообще хорошо
Если кому понадобится помощь - спрашивайте
Похвалюсь своим калькулятором
http://www.calorizator.ru/analyzer/body.
Сплошной JQuery, всё считается на клиенте. Думаю для многих видов калькуляторов можно делать jscript-версию без лишнего дерганья сервера.
Если у кого отключен js, дублировать обычной версией.
ссылка на обсуждение калькулятора битая. подобный плагин видел где-то
Хм, у меня нормально на обсуждение форум открывается...
да, открывается. ошибся
Да, хороший калькулятор! На основе какого-то модуля или с нуля?
Похвалюсь своим калькулятором
http://www.calorizator.ru/analyzer/body.
Сплошной JQuery, всё считается на клиенте. Думаю для многих видов калькуляторов можно делать jscript-версию без лишнего дерганья сервера.
Если у кого отключен js, дублировать обычной версией.
Изначально сделал как обычную html не-друпал страницу. Jquery + jquery.trackbar + jquery.tools. Потом вставил в друпал как обычную страницу с небольшими друпальными модификациями.
Присоединяюсь к вопросу какие модули????
То есть хотел спросить есть ли модули на drupal
Привет всем. А у меня заказчик хочет калькулятор с хорошей админкой. Там должна быть таблица с кучей параметров для рачета. Как такое замутить? Может быть кто подскажет, где посмотреть или в какую сторону копать? Надо писать модуль свой наверное...?
Я наконец то изучил Jquery и сделал класный, по-моему, калькулятор стоимости ремонта квартиры. Ещё можно составить смету онлайн.
Рулит этот файлик: /sites/all/themes/mrk/js/smeta.js
и эта страничка: /smeta.htm
Каждая позиция - это нода!
igorek
Неплохо, только я бы табличку рисовал отдельно, в колонке рядом, и туда просто добавлял бы строки. А так, как сейчас - уж больно все в кучу напихано, затрудняет восприятие..ИМХО
А как туда расценки попадают? Есть страница, где можно всем параметрам расценки вбивать или ручками на страницах править?
Таблица эта вьюха.
Расценки ручками на страницах править.
Я их редко правлю.
Вообщем без Jquery ни куда. Можно и править сделать через аякс...
То есть готового модуля нет. Проще самому напилить как надо.
Реализация классная, понравилась