MODx/Встроенные сниппеты/eForm: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 1:
=== Кратко о eForm ===
eForm - сниппет входящий в стандартную поставку Modx. Отвечает за обработку данных, которые пользователи вводят в формы на сайте. Полученные данные можно отослать по электронной почте используя формат html, вложения, автоответчик, а также расширенную обработку данных и генерацию настраиваемых отчетов.
 
Строка 213:
 
Для тех кто хочет использовать оставить другие версии eForm активными. Теперь вы можете сохранить все файлы eForm и соответственно установить &snipFolder. Например вы можете сохранить версию 1.4.4 в папку assets/snippets/eform/1.4.4 и установить &snipFolder=`eform/1.4.4`. К значению автоматически добавится путь 'assets/snippets/'. Не нужно использовать закрывающий слэш (/)!
 
 
 
 
Строка 249 ⟶ 251 :
*[!eForm? &to=`me@mydomain.com` &gotoid=`1` &tpl=`orders` &report=`orderreport` ]]
*[!eForm? &to=`sales@mysuppliers.com` &category=`Purchase Order` &tpl=`chunkPurchaseOrder` &report=`chunkPurchaseReport` ]]
 
 
 
 
=== Переменные шаблона ===
Строка 259 ⟶ 264 :
*'''[+postdate+]''' - эта переменная будет использована в отчете и сообщении для пользователя после отправки данных формы и установит текущую дату и время.
*'''[+debug+]''' - начиная с версии 1.4.1, автоматически устанавливается, если включен режим отладки, в форме и сообщении для пользователя после отправки. Не помещается автоматически в шаблон отчета. Необходимо избегать отправку технической информации через сервер. Если вы хотите протестировать отправку писем, то можете включить эту переменную самостоятельно.
 
 
 
 
===Типы и форматы данных===
Строка 273 ⟶ 281 :
[description/title]:[datatype]:[required]:[validation message]:[validation rule]
Data types
 
 
====Data types (Типы данных)====
Строка 289 ⟶ 298 :
 
Выпадающие списки, чекбоксы, и радиобатоны не требуют определения типа. eForm определяет их автоматически.
 
 
 
 
===Extended Server Validation (Дополнительная проверка сервером)===
Строка 298 ⟶ 310 :
 
Например: eform="Year of Birth:integer:1:Must be between 1950 and 2002:#RANGE 1950-2002"
 
 
 
 
 
====Правила проверки:====
Строка 335 ⟶ 351 :
return str_replace($badWords,$goodWords,$value);
}
##FILTER #REGEX
 
Регулярное выражение замены. Синтаксис preg_replace() в PHP. Поиск и выражение замены разделяется двумя вертикальными чертами (||)
 
 
 
 
== Поля select, radio и checkbox ==
Строка 360 ⟶ 379 :
 
Пример похожий на 2, но вы хотите убедиться, что возвращенные значения лежат в допустимом диапазоне чисел. Установим для параметра eform заголовок, числовой тип данных, обязательность заполнения, сообщение об ошибке и проверку на диапазон. Это будет выглядеть так: <input type="hidden" name="calculatedField" value="" eform="Calculated Value:integer:1:Calculation out of range:#RANGE 1-10" />
 
 
 
== Пример полей с проверкой ==
Строка 376 ⟶ 397 :
<input type="checkbox" name="myColors[]" value="Red" eform_options="Colors::1" /> (тип данных не определен)
<input type="checkbox" name="myColors[]" value="Green" /> (тип данных не определен)
 
 
==Простейший пример использования==
 
Шаг 1. Создаём форму и помещаем её в чанк. Назовем её 'eFeedbackForm'
 
 
 
<source lang="html4strict">
<p><span style="color:#900;">[+validationmessage+]</span></p>
<form method="post" action="[~[*id*]~]">
<input type="hidden" name="formid" value="feedbackForm" />
<p><label accesskey="n">Ваше Имя</label>
<input type="text" name="Name" maxlength="60" eform="Your Name::1" /></p>
 
<p><label accesskey="e">Ваш е-мэйл адрес</label>
<input type="text" name="email" size="40" maxlength="40" eform="Your Email Address:email:1" /></p>
<label accesskey="s">Тема</label>
<select name="subject">
<option value="Feedback">Проблемы с сайтом, пожелания.</option>
<option value="Support request">Запрос технической поддержки</option>
<option value="Feature Request">Запрос подробностей.</option>
</select>
<p><label accesskey="c">Текст письма</label><br />
<textarea cols="40" rows="10" name="comments" eform="Comments:html:1"></textarea></p>
 
<p><label>Хотели бы вы подписаться на нашу рассылку?</label>
<input type="radio" name="list" value="Yes" eform="Mailling List::0:" /> Да&nbsp;
<input type="radio" name="list" value="No" /> Нет&nbsp;</p>
 
<p>
Пожалуйста введите код: (Чтобы предупредить спам)<br />
<img src="[+verimageurl+]" alt="verification code" /><br />
<input type="text" name="vericode" size="20" />
</p>
<p><input type="submit" name="submit" value="Send Feedback"></p>
</form>
</source>
 
Шаг 2. создадим емэйл шаблон (шаблон отчёта) И поместим в чанк. Назовем его 'eFeebackReport'
 
<source lang="html4strict"><p>This is a response sent by [+Name+] using the feedaback form on the website. The details of the mesage follow below:</p>
<table>
<tr valign="top"><td>Name:</td><td>[+Name+]</td></tr>
<tr valign="top"><td>Email:</td><td>[+email+]</td></tr>
<tr valign="top"><td></td><td>[+subect+]</td></tr>
<tr valign="top"><td>comments:</td><td>[+comments+]</td></tr>
</table>
<p>Would [+name+] like to be on our mailing list? <strong>[+list+]</strong></p>
 
<p>You can use this link to reply: <a href="mailto:[+email+]?subject=RE:[+subject+]">[+email+]</a></p></source>
 
Шаг 3. (по желанию) создаём страницу благодарности. И поместим её на страницй с id 34.
 
<source lang="html4strict"><h3>Спасибо Вам!</h3>
<p>Мы рады , что вы воспользовались этим сервисом.</p>
<p>если Вам на письмо ни кто нае ответит - напишите через несколько дней.</p></source>
 
Step 4. добавляем вызов сниппета на (новую) страницу.
<source lang="php">
[[eForm? &formid=`feedbackForm` &to=`me@some.domain.com` &tpl=`eFeedbackForm` &report=`eFeedbackReport` &gotoid=`34` &vericode=`1`]]
</source>