eForm - сниппет входящий в стандартную поставку Modx. Он отвечает за обработку данных, которые пользователи вводят в формы на сайте. Полученные данные можно отослать по электронной почте используя формат html, вложения, автоответчик, а также расширенную обработку данных и генерацию настраиваемых отчетов.
Сниппет имеет множество настраиваемых параметров. Все параметры мы описывать не будем, как всегда остановимся на тех, которые нам пригодятся. А что же нам потребуется?
Шаблоны
Форма ввода
Задается параметром &tpl. Это имя чанка для используемого шаблона формы ввода.
Текст письма
Задается параметром &report. Это название чанка для шаблона текста обращения, поступающего на обработку.
Благодарность
Задаётся параметром &thankyou (необязательно). Это название чанка (не число) или идентификатор документа (число) для используемого шаблона сообщения выводимого пользователю после отправки данных формы.
Автоответ
Задается параметром &automessage (необязательно). Это название чанка (не число) или идентификатор документа (число) для используемого шаблона в сообщении автоответчика. Может содержать поля формы.Мы решили, что для официального сайта такой ответ не нужен.
Адреса
Куда посылать письмо
Задается параметром &to (необязательно). Это адрес e-mail на который будет послана информация. Можно использовать несколько адресов разделяя их запятой. Если не указано, то будет использован системный адрес.
Адрес отправителя
Задается параметром &from (необязательно). Вот здесь мы и можем вписать фиктивный обратный адрес e-mail, общий для всех писем с сайта. А параметром &fromname (необязательно) мы можем задать"человеческое" название отправителя письма.
Адрес автоответчика
Задается параметром &autosender (необязательно). Это адрес электронной почты, который показывается при отправке сообщения автоответчика. Например: no-reply@mydomain.com. Если решим, что автоответчик нужен, зададим такой параметр. А имя, используемое в сообщении автоответчика, будет задано параметром &autoSenderName.
Куда отвечать
Задается параметром &replyto (необязательно). Это электронный адрес или поле содержащее адрес, который будет использован в письме для ответа.
Проверка ввода данных
eForm имеет встроенный анализатор определяющий формат и тип данных с соответствующей проверкой каждого поля. Для настройки используется добавление дополнительного параметра eform в необходимые поля.
Базовый вид параметра eform следующий:
[description/title]:[datatype]:[required]:[validation message]:[validation rule]
Например, поле для ввода адреса электронной почты может быть записано так
<input type="text" name="fbEMail" id="fbEMail"
eform="EMail:email:1:EMail » Некорректный адрес электронной почты." value="" />
</div>
Здесь в параметре eform записаны с разделителями двоеточие аргументы. Это поле требуемое - третий аргумент - 1. Если его установить в 0, то ввод адреса email будет необязательным. А вот правило проверки не задано.
Введем поле почтового адреса:
<div class="element"><input type="text" name="fbAddress" id="fbAddress" eform="Адрес::1:Адрес должен содержать не менее 10 символов.:#FUNCTION fbValidateText" value=""></div>
Здесь мы включили проверку наличия почтового адреса, и записали правило проверки - :#FUNCTION fbValidateText. Где же эта функция находится? А хоть где - лишь бы была доступна в момент обработки. Сниппет позволяет подключать и дополнительные библиотеки. Вид этой функции может быть такой:
function fbValidateText($value) { return strlen($value)>=15; }
Функция должна использовать только одно значение (значение поля) и возвращать TRUE или FALSE. Если функция проверки не задана или не существует, выполняются штатные минимальные проверки в зависимости от типа данных:
а) Все поля автоматически проверяют на пустоту значений.
б) Дополнительные проверки:
- string - не имеет специальной проверки кроме пустоты и обязательности заполнения.
- date - проверяется на правильность формата даты (основано на функции strtotime()).
- integer - проверяется на числовое значение (не проверяется, если оно целое).
- float - проверка на числовое значение.
- email - проверяет правильность адреса email с использованием регулярных выражений.
- file - (для поля загрузки файла) - проверяет соответствие разрешенному размеру, на текущий момент не имеет проверки типов файлов.
- html - также как тип string только перенос строки преобразуется в тэг
Выпадающие списки, чекбоксы, и радиобатоны не требуют определения типа. eForm определяет их автоматически.
Написать комментарий