Сниппет eForm

Опубликовано: 16 Мая 2014

Сниппет 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` ... !]
[!eForm &jScript= `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>

Комментарии (1)

  1. Забрать выигрыш www.mail.ru:
    02.02.2019г. в 04:36

    KslZZX 2b2i


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: