Сниппет eForm
Сниппет eForm занимается обработкой данных, которые пользователи вводят в формы на сайте. Полученные данные можно отослать по электронной почте используя формат html, вложения, автоответчик, а также расширенную обработку данных и генерацию настраиваемых отчетов.
Вот некоторые из возможностей сниппета:
1. Форма проверки с помощью мощных правил проверки
2. Защита скрытых полей от взлома
3. CAPTCHA поддержка
4. Поддерживает HTML
5. Гибкая настройка
6. Уведомление для мобильных устройств
7. Автоматическое отправление почты
8. Поддержка CC и BCC полей
Параметр |
Описание |
По умолчанию |
Пример |
&formid |
Идентификатор формы |
нет |
&formid= `shopOrderForm`
|
&tpl |
Шаблон формы |
нет |
&tpl=`OrderForm` |
&report |
Шаблон отчета |
нет |
&report=`OrderReport` |
&to |
Адрес Email для отправки информации |
Системный адрес |
&to=`adres @vash_domen.ua` |
&from |
Адрес отправителя письма |
Системный адрес |
&from=`adres @vash_domen.ua` |
&fromname |
Имя отправителя письма |
нет |
&fromname=`name` |
&replyto |
Адрес для ответа |
&to |
&replyto =`adres @vash_domen.ua` |
&sendirect |
Поле формы для получения адреса отправки |
0 |
&sendirect=`1`
|
&cc |
Также как &email но для Cc |
нет |
&cc=`adres @vash_domen.ua` |
&bcc |
Также как &email но для Bcc |
нет |
&bcc=`adres @vash_domen.ua` |
&ccsender |
Послать копию данных формы пользователю |
0 |
&ccsender=`1`
|
&subject |
Тема сообщения |
нет |
&subject=`Спасибо за ваш заказ` |
&noemail |
Запретить отправку писем |
0 |
&noemail=`1`
|
&mailselector |
Определение адресата по значению поля |
нет |
&mailselector=`email` |
&mobile |
Адрес почты мобильного устройства |
нет |
&mobile=`adres @vash_domen.ua` |
&mobiletext |
Сообщение для отправки на мобильное устройство |
нет |
&mobiletext=`Сообщение`
|
&thankyou |
Сообщение выводимое после отправки данных |
нет |
&thankyou=` thankyouTpl` |
&gotoid |
Переход на документ после отправки формы |
нет |
&gotoid=`34`
|
&category |
Название категории |
нет |
&category=` category ` |
&keywords |
Ключевые слова или поля для поиска |
нет |
&keywords=`word, word1, word2` |
&autosender |
Адрес автоответчика |
нет |
&autosender=`adres @vash_domen.ua` |
&autoSenderName |
Имя для автоответчика |
нет |
&autoSenderName=`name`
|
&automessage |
Сообщение автоответчика |
нет |
&automessage =`messageForm`
|
&allowhtml |
Использовать HTML в письме |
0 |
&allowhtml=`1`
|
&language |
Использовать HTML в письме |
english |
&language=`ukrainian ` |
&vericode |
Использование капчи |
0 |
&vericode=`1`
|
&debug |
Режим отладки |
0 |
&debug=`1` |
&sendAsHtml |
Какие сообщения используют HTML (report, autotext, mobile) |
нет |
&sendAsHtml=`report`
|
&sendAsText |
Какие сообщения используют текстовый формат (report, autotext, mobile) |
нет |
&sendAsText=`report`
|
&sessionVars |
Названия переменных сессии |
нет |
[!eForm &sessionVars= `nameID` ... !]
|
&postOverides |
Приоритет получаемых данных над сессионными |
0 |
&postOverides=`1`
|
&reportAbuse |
Оповещение о попытках инъекции |
0 |
&reportAbuse=`1`
|
&cssStyle |
Добавление CSS-стилей на страницу |
нет |
[!eForm &cssStyle= `NameTpl` ... !] [!eForm &cssStyle=`assets/ forms.css, NameTpl` ... !] |
&jScript |
Добавление JavaSript на страницу |
нет |
[!eForm &jScript=`assets/ forms.js, NameTpl` ... !] |
&protectSubmit |
Защита от повторной отправки |
1 |
&protectSubmit=`0`
|
&submitLimit |
Лимит времени на повторную отправку формы |
0 |
&submitLimit=`10`
|
&requiredClass |
Добавление CSS-класса к обязательным полям при проверке |
нет |
&requiredClass =`formcss`
|
&invalidClass |
Добавление CSS-класса к неправильно заполненным полям |
нет |
&invalidClass=`formcss`
|
&runSnippet |
Сниппет выполняемый перед работой eForm |
нет |
&runSnippet=`snippetName` |
&snipFolder |
Путь к папке сниппета eForm |
нет |
&snipFolder= `eform/name`
|
&eFormOnBeforeMailSent |
Событие после проверки формы и перед отправкой отчета |
нет |
&eFormOnBeforeMailSent=`NameSnippet` |
&eFormOnMailSent |
Событие после отправки писем |
нет |
|
&eformOnBeforeFormParse |
Событие после загрузки шаблона Функции передаются следующие параметры: &$templates - массив всех шаблонов с индексами 'tpl','report','thankyou' и 'autotext'. Последние три будут иметь значение только после отправки формы.
|
нет |
|
&eFormOnBeforeFormMerge |
Событие до определения плэйсхолдеров шаблона Функции передаются следующие параметры: &$fields - массив полей и значений переменных. |
нет |
|
&eFormOnValidate |
Событие после проверки данных формы Функции передаются следующие параметры: &$fields - массив полей и значений переменных &$vMsg - числовой массив ошибок проверки данных формы &$rMsg - числовой массив пропущенных обязательных полей |
нет |
|
Плэйсхолдеры шаблона
Для многих стандартных полей формы eFrom автоматически вставляет соответствующие переменные шаблона. Также вы можете определить их самостоятельно:
[+validationmessage+] - Необходимо использовать в каком-то месте вашего шаблона или документа. Сообщение об ошибках заполнения формы.
[+vericode+] и [+verimageurl+] - необходимы если вы собираетесь использовать в форме графическую проверку (capthca).
[+postdate+] - эта переменная будет использована в отчете и сообщении для пользователя после отправки данных формы и установит текущую дату и время.
[+debug+] – тест отправки писем
Типы данных.
Все поля автоматически проверяют на пустоту значений.
string - не имеет специальной проверки кроме пустоты и обязательности заполнения.
date - проверяется на правильность формата даты (основано на функции strtotime())
integer - проверяется на числовое значение (не проверяется, если оно целое)
float - проверка на числовое значение
email - проверяет правильность адреса email с использованием регулярных выражений
file - (для поля загрузки файла) - проверяет соответствие разрешенному размеру, на текущий момент не имеет проверки типов файлов.
html - также как тип string только перенос строки преобразуется в тэг <br />
Выпадающие списки, чекбоксы, и радиобатоны не требуют определения типа. eForm определяет их автоматически.
Поля select, radio и checkbox
Эти поля имеют автоматическу проверку. Все полученные значения проверяются на соответствие установленными вами в шаблоне формы. Это позволяет избежать добавления посторонних значений в эти поля.
Скрытые поля
По умолчанию скрытые поля присутствуют как защита от подделки формы при сравнении используемых значений (как в полях select, radio и checkbox). Но в некоторых местах это может быть ненужно. Например если вы используете обработку javascript, которая хранит свои значения в скрытых полях. В это случае вы можете изменить это поведение используя параметр eform (включая или выключая проверку).
Скрытое поле пример 1:
Встроенное поведение удобно, если вы храните в скрытом поле идентификатор документа и не хотите чтобы он был изменен кем-либо. Поле должно выглядеть примерно так:
<input type="hidden" name="docId" value="31" />
Скрытое поле пример 2:
Если вы используете javascript, который хранит значения в скрытых полях, то вам необходимо убрать проверку поля так:
<input type="hidden" name="calculatedField" value="" eform="::0::" />
Пример полей с проверкой
Выпадающий список - обязательное поле (не требуется проверка)
<select name="mySelect" eform_options="Select Country::1" /> (тип данных не определен)
<option value="en-au">Australia</option>
<option value="en-us">USA</option>
</select>
Много чекбоксов - обязательное поле, можно выбрать несколько значений.
<input type="checkbox" name="myColors[]" value="Red" eform_options="Colors::1" /> (тип данных не определен)
<input type="checkbox" name="myColors[]" value="Green" /> (тип данных не определен)
Пример формы
Вызов eForm
[!eForm? &formid=`callme` &tpl=`callMeFormTpl`&to=`mail@mail.ru` &report=`callMeFormReportTpl` &thankyou=`callMeFormThankTpl` &subject=`Заказ обратного звонка` !]
callMeFormTpl – чанк формы
<div class="error">[+validationmessage+]</div>
<form method="POST" onsubmit="yaCounter21814912.reachGoal('ORDER1'); return true;" id="callme" action="[~[*id*]~]" >
<label for="name">Ваше имя:</label>
<input type="text" name="name" value="[+name+]" eform="Ваше имя::1">
<label for="phone">Ваш телефон:</label>
<input type="text" name="phone" value="[+phone+]" eform="Ваш телефон::1">
<label for="email">Ваш e-mail:</label>
<input type="text" name="email" value="[+email+]" eform="Ваше e-mail:email:0">
<input type="submit" class="submitBtn" name="callrequest" value="Позвоните мне">
</form>
callMeFormThankTpl – чанк благодарн6ости за письмо
<p><b>Спасибо за ваше обращение. Наши менеджеры свяжутся с вами в ближайшее время</b></p>
<div class="clear"></div>
callMeFormReportTpl – чанк письма
<p><b>Заказ обратного звонка с сайта</b></p>
<p><b>Имя:</b>[+name+]</p>
<p><b>Телефон:</b>[+phone+]</p>
<p><b>E-mail:</b>[+email+]</p>
Забрать выигрыш www.mail.ru:
02.02.2019г. в 04:36
KslZZX 2b2i