SinglWolf

Пользовательская форма - вопросы по-существу.

Recommended Posts

Создал пользовательскую форму по видео-инструкции.

post-2647-0-54342600-1429339742_thumb.pn

У меня возникло несколько вопросов, которые не были озвучены.

  1. Как сделать поле Телефон(и/или) E-mail обязательным, или чтобы было можно отправить заявку, если заполнено только одно из двух этих полей?
  2. Как сделать валидацию полей? Например, поле E-mail должно содержать только 1 символ @ и хотя бы 1 точку. А поле Телефон не должно содержать ничего, кроме цифр, круглых скобок, дефисов и 1 знака плюс?
  3. Защищено ли текстовое поле от внедрения исполняемого кода?
  4. Как связать селектбоксы 1 и 2? Например, пока в в селектбоксе 1 не выбрано нужное значение, селектбокс 2 неактивен или вообще строка с селектбоксом 2 не видна.
  5. Как привязать значения селектбокса2 к списку адресов? Например, если в селектбоксе2 выбрано значение "Ремонт и Отделка", то заявка отправляется не на ящик админа, а на remont@mail.ru.
  6. И как правильно организовать список адресов в таблице для связи с селектбоксом 2?

Надеюсь на ответы по-существу.

Просьба, господину TopRaN не толкать умных речей. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А от меня вам помощи и не будет. Скажу одно. Большинство вопросов не реализованный в системе и их нужно дорабатывать. Так что вам в раздел фриланс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А от меня вам помощи и не будет. Скажу одно. Большинство вопросов не реализованный в системе и их нужно дорабатывать. Так что вам в раздел фриланс.

Всё-таки влез...  :D

Я просил ответы по существу.

Мои вопросы не высосаны из пальца и актуальны для большинства владельцев вашего движка.

В раздел фриланс? Чтобы за мои деньги эти доработки вошли в ядро движка?  :rolleyes:

 

Тут рисователи шаблонов за собой забавные вещи в файлах оставляют, например, в файле main.tpl

            {if $REQUEST_URI=='/glavnaya1'}{include file='glavnaya1.tpl'}            {elseif $REQUEST_URI=='/vibor-tarifa'}{include file='tariff_select.tpl'}            {else}

За такие поделки платить?  :)

 

ЗЫ. Если возникнет вопрос об оплате, то не вам это решать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  1. Как сделать поле Телефон(и/или) E-mail обязательным, или чтобы было можно отправить заявку, если заполнено только одно из двух этих полей?
  2. Как сделать валидацию полей? Например, поле E-mail должно содержать только 1 символ @ и хотя бы 1 точку. А поле Телефон не должно содержать ничего, кроме цифр, круглых скобок, дефисов и 1 знака плюс?
  3. Защищено ли текстовое поле от внедрения исполняемого кода?
  4. Как связать селектбоксы 1 и 2? Например, пока в в селектбоксе 1 не выбрано нужное значение, селектбокс 2 неактивен или вообще строка с селектбоксом 2 не видна.
  5. Как привязать значения селектбокса2 к списку адресов? Например, если в селектбоксе2 выбрано значение "Ремонт и Отделка", то заявка отправляется не на ящик админа, а на remont@mail.ru.
  6. И как правильно организовать список адресов в таблице для связи с селектбоксом 2?

 

1. Не до конца понял. Не может поле быть "чуть-чуть обязательным". Если оно отмечено как обязательное, то будет стопорить отправку данных вне зависимости от обязательности или заполнености остальных полей

 

2., 4, 5. Программно. Средства фаст-форм не предназначены под такие цели. Как мини-вариант - свой приемщик-прослойка между "Клиент" и форма, как оптимальный-вариант - даже не трогать "Клиент", ну может кроме части сохранения заявки в БД (если таковая требуется).

3. Мы стараемся по максимуму фильтровать входящие данные.

6. Ключ из списка опций -> адрес (список адресов через обусловленый делиметер). Если вообще нужна таблица для такого случая.

 

 

 

 

за собой забавные вещи в файлах оставляют, например, в файле main.tpl

 

А в чем забавность-то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Не до конца понял. Не может поле быть "чуть-чуть обязательным". Если оно отмечено как обязательное, то будет стопорить отправку данных вне зависимости от обязательности или заполнености остальных полей

ПризнаЮ, мудрёно больно написал. Просто надо проверить, чтобы при отправке хотя бы 1 из 2 полей было заполнено.

Про пункт 3 понял, спасибо.

Про связку селектбоксов.

Буду шаманить с джавой.

А вот про отправку на разные адреса хотелось бы уточнить. Средствами движка реально сделать?

Пункт 6 отпадает за ненадобностью.

 

А в чем забавность-то?

Зачем оставлять "хвосты" и не нужный хлам в шаблоне, который идёт "на продажу"? Для придания "веса" и "солидности"?

Лучше бы в файл readme.txt написали кратко о блоках и функционале шаблона и как ими пользоваться, а то я так и не понял, что означает строка в админке:

Тип главной страницы (classic|slider|carousel|search)(template.realia.homepagetype)

Подставлял все значения classic,slider,carousel,search а видимых изменений на шаблоне не заметил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ПризнаЮ, мудрёно больно написал. Просто надо проверить, чтобы при отправке хотя бы 1 из 2 полей было заполнено.

Про пункт 3 понял, спасибо.

Про связку селектбоксов.

Буду шаманить с джавой.

А вот про отправку на разные адреса хотелось бы уточнить. Средствами движка реально сделать?

Пункт 6 отпадает за ненадобностью.

 

Зачем оставлять "хвосты" и не нужный хлам в шаблоне, который идёт "на продажу"? Для придания "веса" и "солидности"?

Лучше бы в файл readme.txt написали кратко о блоках и функционале шаблона и как ими пользоваться, а то я так и не понял, что означает строка в админке:

Тип главной страницы (classic|slider|carousel|search)(template.realia.homepagetype)

Подставлял все значения classic,slider,carousel,search а видимых изменений на шаблоне не заметил.

 

 Просто надо проверить, чтобы при отправке хотя бы 1 из 2 полей было заполнено.

 

Тогда оно плавно вливается в ряд с 2., 4, 5

 

А вот про отправку на разные адреса хотелось бы уточнить. Средствами движка реально сделать?

 

 

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

 

Средствами движка можно сделать наверное много чего, просто тут вопрос что понимать под этими "средствами"))). Думаю то, что имеете в виду вы, вряд ли сможет.

 

 

Для придания "веса" и "солидности"?

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если в шаблоне вам что-то кажется лишним удаляйте или вам было бы проще если бы мы зазендили весь движок? )

А вообще этот код для совместимости с модулем Биллинга.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если в шаблоне вам что-то кажется лишним удаляйте или вам было бы проще если бы мы зазендили весь движок? )

А вообще этот код для совместимости с модулем Биллинга.

Причём тут шаблон? Я форму создал через админку, т.е. средствами движка. И если в движке нет функций совместимых с моими вопросами, ОК, буду соображать через создание формы вручную.

Если я буду создавать форму запроса в шаблоне вручную, как мне вызвать кнопку "Отправить" из формы, созданной движком?

Кстати, при создании своей формы, я наткнулся на тип записи mobilephone.

Можно ли немного о свойствах? Есть ли маска?

Если есть маска, то почему бы не сделать ещё подобный тип записи для e-mail.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Если я буду создавать форму запроса в шаблоне вручную, как мне вызвать кнопку "Отправить" из формы, созданной движком?

Ответьте, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Если я буду создавать форму запроса в шаблоне вручную, как мне вызвать кнопку "Отправить" из формы, созданной движком?
Ответьте, пожалуйста.

 

Для примера берите форму

http://estate.sitebill.ru/contactus/

Вам нужно продублировать параметры, которые указаны в коде только со своим оформлением

<form method="post" class="form-horizontal" action="/contactus/" enctype="multipart/form-data"><script type="text/javascript" src="/apps/system/js/form_tabs.js"></script>    				<div class="form_element control-group" alt="fio">			<label class="control-label">Имя или название организации<span style="color: red;">*</span></label>						<div class="form_element_html controls"><input type="text" name="fio" value=""></div>								</div>				<div class="form_element control-group" alt="phone">			<label class="control-label">Телефон<span style="color: red;">*</span></label>						<div class="form_element_html controls"><input type="text" name="phone" value=""></div>								</div>				<div class="form_element control-group" alt="email">			<label class="control-label">E-mail<span style="color: red;">*</span></label>						<div class="form_element_html controls"><input type="text" name="email" value=""></div>								</div>				<div class="form_element control-group" alt="text">			<label class="control-label">Текст<span style="color: red;">*</span></label>						<div class="form_element_html controls"><textarea name="text" rows="10" cols="40"></textarea></div>								</div>				<div class="form_element control-group" alt="captcha">			<label class="control-label">Защитный код<span style="color: red;">*</span></label>						<div class="form_element_html controls"><img id="capcha_img" class="capcha_img" src="/third/kcaptcha/index.php?captcha_session_key=ef0ed241f064f067a459e717e42bcf69" width="180" height="80"><br><a href="javascript:void(0);" id="captcha_refresh" class="captcha_refresh">Обновить картинку</a><br><input type="text" name="captcha" value=""><input type="hidden" name="captcha_session_key" value="ef0ed241f064f067a459e717e42bcf69"><script src="/apps/system/js/md5.js"></script><script type="text/javascript">$(document).ready(function(){	    		$(".captcha_refresh").click(function(){					var new_key=new Date().getTime();					var hash = CryptoJS.MD5(String(new_key));	    			$(this).prevAll(".capcha_img").eq(0).attr("src", estate_folder+'/third/kcaptcha/index.php?captcha_session_key=' + hash);	        		$(this).nextAll("input[name=captcha_session_key]").val(hash);	    		});	    	});</script></div>								</div>			<div class="form_element_control">  <button id="formsubmit" onclick="return SitebillCore.formsubmit(this);" name="submit" class="btn btn-primary">Отправить</button></div>	<input type="hidden" name="id" value="0">	<input type="hidden" name="do" value="new_done">	<input type="hidden" name="contactus_id" value="">	<input type="hidden" name="action" value="contactus">	<input type="hidden" name="language_id" value="0"></form>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас