Форма обратной связи modx на MODX без спама
Для создания формы на Modx без спама, надо её создать с дополнительными невидимыми полями:
1. Загружаем и устанавливаем компоненты Ajaxform и Formit
2. Форма вызывается очень просто, вы должны разобраться
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm.example`
&hooks=`email,spam`
&emailFrom=`no-replay@daruse.ru`
&emailSubject=`Заявка с сайта https: daruse.ru `
&emailTo=`info@daruse.ru`
&validate=`name:required,email:required,message:required,work-email:blank`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Спасибо за заявку! Мы свяжемся с вами в ближайшее время.`
&emailTpl=`mailtpl`
]]
Или через шабланизатор Fenom, вот так:
{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'form' => 'tpl.AjaxForm.example',
'hooks' => 'email,spam'
'emailFrom' => 'no-replay@daruse.ru',
'emailSubject' => 'Заявка с сайта daruse.ru',
'emailTo' => 'info@daruse.ru',
'validate' => 'name:required,email:required,message:required,work-email:blank',
'validationErrorMessage' => 'В форме содержатся ошибки!',
'successMessage' => 'Спасибо за заявку! Мы свяжемся с вами в ближайшее время.',
'emailTpl' => 'mailtpl',
])}
Описание параметров:
- snippet - сниппет для обработки AjaxForm, ставим Formit - он как раз и отправляет письма
- form - чанк оформления формы, стоит тот, который по умолчанию
- hooks - хуки для защиты от спама
- emailFrom - адрес, от которого приходит письмо
- emailTo - адрес, которому приходит письмо
- validate - валидация, тут также два невидимых поля
- validationErrorMessage - сообщение, которые будет выводиться, при не успешном вводе полей
- successMessage - сообщение, которые будет выводиться, при успешной отправке письма
- emailTpl - чанк, в котором храниться шаблон приходящего письма на почту (о нём читайте ниже)
3. После этого заходим в наш чанк оформления формы, в данном случае это tpl.AjaxForm.example и добавим после тега form, следующие два поля.
<form action="" method="post" class="ajax_form af_example form-horizontal">
<input class="forminpun" type="hidden" name="nospam:blank" value="" />
<input class="forminpun" type="hidden" name="work-email" value="" />
...
</form>
Теперь по Вашей форме не должен проходить спам, за счет двух новых полей.
4. Внешней вид приходящего письма
По умолчанию приходит на почту письмо без всякого форматирования в не очень читаемом формате. Поэтому давайте оформим немного наше письмо на примере.
Шаблон письма это простой чанк, который мы указываем в параметре emailTpl, тут всё очень просто, напишу пример оформления. Если будут вопросы, пишите в комментариях.
mailtpl:
<p style="font-size: 18px">На сайте <b>[[++site_url]]</b> оставили заявку.</p>
[[+name:notempty=`<p style="font-size: 18px"><b>Имя: [[+name]]</p>`]]
[[+email:notempty=`<p style="font-size: 18px"><b>Почта: [[+email]]</p>`]]
[[+message:notempty=`<p style="font-size: 18px"><b>Сообщение: [[+message]]</p>`]]
<p>Пожалуйста свяжитесь с ним в ближайшее время.</p>
<p>Не отвечайте на это письмо, так как оно автоматическое.</p>
Читайте о создании обратной формы на Ajax и php и простой обратной форме на php c защитой от спама.
Оставить комментарий