Форма обратной связи MODX revo

Форма обратной связи MODX   Очень быстро создаем форму обратной связи на сайте под управлением CMF MODX revo используя пакет FormIt.
Процесс установки пакетов на MODX revo подробно описывать в этом посте не буду по причине его простоты и большого количества материала на эту тему в интернете.
Напомню лишь последовательность действий:
<Система> - <Управление пакетами> - <Загрузить дополнения> - <Поиск>(вводим - FormIt)
            
MODX revo              MODX revo
   Нажимаем <Загрузить>, а затем <Установить>
 
   Далее создадим новый чанк и назовем его <form> 
 
чанк FormIt MODX
   и вставляем следующий код: 
 
[[!FormIt?
   &hooks=`spam,email,redirect`
   &emailTpl=`sendEmailTpl`
   &emailTo=`mail@mail.ru`
   &emailSubject=`Письмо с сайта [[++site_url]]`
   &redirectTo=`178`
   &validate=`name:required,email:email:required,text:required:stripTags,phone:required`
]]
[[!+fi.error_message:notempty=`<p>[[!+fi.error_message]]</p>`]]
<form action="[[~[[*id]]]]" method="post" class="form">
    <input type="hidden" name="nospam:blank" value="" />
    <label for="name">Ваше имя <span class="required">*</span>:</label>
    <span class="error">[[!+fi.error.name]]</span>
    <input type="text" name="name" id="name" value="[[!+fi.name]]" />
 
    <label for="phone">Ваш телефон <span class="required">*</span>:</label>
    <span class="error">[[!+fi.error.phone]]</span>
    <input type="text" name="phone" id="phone" value="[[!+fi.phone]]" />
 
    <label for="email">Ваш Email <span class="required">*</span>:</label>
    <span class="error">[[!+fi.error.email]]</span>
    <input type="text" name="email" id="email" value="[[!+fi.email]]" />
  
    <label for="text">Введите сообщение <span class="required">*</span>:</label>
    <span class="error">[[!+fi.error.text]]</span>
    <textarea name="text" id="text" cols="55" rows="7"
       value="[[!+fi.text]]">[[!+fi.text]]</textarea>
          
    <input class="submit_button" type="submit" value="Отправить" />
</form>
 
 
   Создаем чанк <sendEmailTpl>
 
Создаем чанк sendEmailTpl
   Он описывает какую информацию отсылать на почту и вставляем туда код:
 
<p>От кого: [[+name]]</p>
<p>Телефон: [[+phone]]</p>
<p>E-mail: [[+email]]</p>
<p>Сообщение: [[+text]]</p>
 
Здесь:
[[+name]] — имя отправителя
[[+phone]] — телефон отправителя
[[+email]] — электронная почта отправителя
[[+text]] — сообщение, написанное отправителем на сайте 
 
   Далее создадим страницу с сообщением об успешной отправке и благодарностью за то,
что пользователь отправил сообщение через форму обратной связи. 
   Например: 
<p>Благодарим Вас за отправку письма!
Ваше письмо успешно отправлено.
Наш специалист ответит Вам в ближайшее время.</p>
 
На эту страницу настроим редирект по ее ID.
 
redirectTo= сниппет FormIt MODX
 
   Не забываем изменить значение параметра &redirectTo=`178` в месте вызова сниппета
FormIt (в коде чанка <form>), куда следует передать корректный ID ресурса.
А также   &emailTo=`mail@mail.ru` - естественно на свой ящик.
 
   У меня эта страница имеет ID — 178.
Этот идентификатор мы будем использовать ниже при вызове FormIt.
 
   Рассмотрим его подробнее блок вызова дополнения FormIt:
[[!FormIt?
   &hooks=`spam,email,redirect`
   &emailTpl=`sendEmailTpl`
   &emailTo=`mail@mail.ru`
   &emailSubject=`Письмо с сайта [[++site_url]]`
   &redirectTo=`178`
   &validate=`name:required,email:email:required,text:required:stripTags,phone:required`
]]
 
   Здесь: 
Первый параметр — hooks. Хуки — это скрипты дополнения FormIt. 
  В нашем случае у нас их два — email отвечает за саму отправку электронной почты,
  а redirect — отсылает пользователя на страницу с благодарностью за контакт;
emailTpl — шаблон письма, отправляемого на сайте. Выше мы его создали и отредактировали;
emailSubject — тема писем, которые будут приходить с сайта;
redirectTo — ID страницы, которую будем показывать пользователю после того,
  как он отправил сообщение через форму обратной связи. Мы ее создали ранее;
emailTo — адрес электронной почты, куда будут приходить письма с сайта.
 
   Необходимо добавить несколько правил CSS чтобы наша форма приобрела более привлекательный вид.
 
input, label, textarea{
    display: block;
}
input, textarea{
    margin: 0 0 10px 0;
    border: 1px solid #ccc;
    padding: 5px;
}
input.submit_button{
    background-color: #43A52B;
    border: 1px solid #358222;
    padding: 5px 10px;
    border-radius: 3px;
    font: 13px Arial, Verdana, Tahoma, sans-serif;
    color: #fff;
    cursor: pointer;
}
input.submit_button:hover{
    background-color: #358222;
}
span.required,
span.error{
   color: #ff0000;
}
span.required{
    font-size: 18px;
}
span.error{
    font-size: 11px;
}
 
   На сайте MODX revo это выглядит так:
 
MODX форма обратной сязи
 
Итогом нашей работы стала форма обратной связи MODX revo
​с применением пакета FormIt.
Не устраевает внешний вид? Редактируйте CSS код или пишите свой.
   Вот собственно всё. 
   Заказывайте темы для статей.
Если есть трудности – поможем с их решением.
 

Комментарии

Просто и доходчиво
Установил на своём сайте и всё сразу заработало.
Форма обратной связи хороша а вот дизайн придется доработать!

Все поставил и все настроил при отправке переходит на страницу благодарности ,но на почту так ничего и не пришло (:

Спасибо за подробное описание. Все работает!

Добрый день, ошибка такая в логе:
(ERROR @ /modx/connectors/modx.config.js.php) Error caching lexicon topic lexicon/ru/core/resource

как исправить не подскажите?

Добрый день, не подскажите в чем ошибка?

(ERROR @ /modx/connectors/modx.config.js.php) Error caching lexicon topic lexicon/ru/core/resource

Такая ошибка, на мой взгляд, возникает в случае использования галереи.
Поэкспериментируйте с версиями галереи и движка! Вопрос скорее именно в этом.

В случае, когда какой-то элемент формы не прошел валидацию, экран перемещается вверх. Как оставить его на месте формы?

Это делается очень просто. Только Вы не можете оставить её на месте, необходимо прокрутить до неё. Для этого необходимо нужному элементу создать идентификатор (id) и указать его в параметре action через #:
<form id="formit" action="[[~[[*id]]]]#formit" method="post" class="form">
за ответ спасибо -itchief.ru- взял его оттуда.

Я прошу прощения, а будет ли работать эта форма на локальном сервере с доступом в сеть (Open Server)? Попытался отправить из этой формы, но ничего не пришло.
Сервер имеет доступ в сеть - из админки modx устанавливаются пакеты с внешних репозиториев.

Добрый день!
С Вашей формой все работает! спасибо!
но я попытался адаптировать ее под свою и ничего не работает.
Вот код, посмотрите пожалуйста! спасибо!
Почту изменил для примера на кккк@inbox.ru
[[!FormIt?
&hooks=`email,redirect`
&emailTpl=`sentEmailTpl`
&emailTo=`кккк@inbox.ru`
&emailSubject=`Письмо с сайта [[++site_url]]`
&redirectTo=`2`
]]
<form action="[[~[[*id]]]]" method="post">
<input type="text" name="name" class="inputtext" value="[[*OrderBlockName]]">
<input type="text" name="phone" class="inputtext" value="[[*OrderBlockPhone]]">
<button type="submit"> [[*OrderBlockButtom]] </button>
</form>

Это не адаптация!
Вы удалили весь функционал!
Перечитайте внимательно статью и разберётесь.
Здесь я подробно всё расписал, но если всё же не выйдет,
то можете обратиться через форму "заказа" на этом сайте.

Спасибо! разобрался!
А есть у вас урок как сделать , чтобы при нажатии кнопки "отправить" , сообщение об испешной отправки появлялось в сплывающем окне, а не на новой странице?

Используйте на своём сайте как всплывающее.
Методов реализации много, один пример:
<!-- Кнопка - Ссылка на вызов модального окона-->
<a class="button button-green" href="#win1">Открыть окно 1</a>
<!-- Вызов окна через миниатюру изображения --><a href="#win1">
<img alt="" height="150" src="img/пример.jpg" title="" width="150" /></a>
<!-- Модальное окно №1 -->

<div class="popup">
Здесь вы можете разместить любой текст, картинки или видео!
</div>

Ну и CSS для этого кода.

Уточните пожалуйста, а параметр #win1 где в чанке form нужно прописать, чтобы в шаблоне html ссылка понимала что именно нужно вызывать? Может быть я что-то недопонял, но строку <a href="#win1"><img alt="" height="150" src="img/пример.jpg" title="" width="150" /></a> нужно прописать в html шаблоне, но значение #win1 то ему неизвестно? Его где-то нужно задать?

С modx знаком только 3 дня, пожалуйста, как и всё вышеописанное, по простому объясните.
Спасибо.

Уточните пожалуйста, а параметр #win1 где в чанке form нужно прописать, чтобы в шаблоне html ссылка понимала что именно нужно вызывать? Может быть я что-то недопонял, но строку
<a href="#win1"><img alt="" height="150" src="img/пример.jpg" title="" width="150" /></a>
нужно прописать в html шаблоне, но значение win1 то ему неизвестно? Его где-то нужно задать?
С modx знаком только 3 дня, пожалуйста, как и всё вышеописанное, по простому объясните.
Спасибо.

<p>Ваш сработал, письмо пришло.</p>
<p>поменял поля на те которые нужны ме и увы, письмо перестало приходить.</p>
<p>вот код</p>

[[!FormIt?
&hooks=`spam,email,redirect`
&emailTpl=`sendEmailTpl`
&emailTo=`als@mail.ru`
&emailSubject=`Письмо с сайта [[++site_url]]`
&redirectTo=`1`
&validate=`name:required,phone:required`
]]
[[!+fi.error_message:notempty=`<p>[[!+fi.error_message]]</p>;`]]
<form action="[[~[[*id]]]]" method="post" class="form">
<input type="hidden" name="nospam:blank" value="" />

<input type="text" name="name" id="name" value="[[!+fi.name]]" placeholder="Название организации"/>
<span class="error">[[!+fi.error.name]]</span>

<input type="text" name="fio" id="fio" value="[[!+fi.fio]]" placeholder="Ф.И.О. заказчика"/>

<input type="text" name="phone" id="phone" value="[[!+fi.phone]]" placeholder="Телефон"/>
<span class="error">[[!+fi.error.phone]]</span>

<input type="text" name="gor" id="gor" value="[[!+fi.gor]]" placeholder="Город"/>

<input class="submit_button" type="submit" value="Отправить" />
</form>

Доброго времени суток.
Использую "&emailSubject=`Письмо с сайта [[++site_url]]" - письмо не отправляется, форма возвращается в состояние буд-то ошибка в поле.
Использую "&emailSubject=`Latinskie bukvy [[++site_url]]" - письмо отправляется, форма работает нормально.
Понятно, что оно не разумеет кириллической кодировки, но где искать?
Подскажите пожалуйста, в чём м.б. причина.
Спасибо.

Первое на что думаю следует обратить внимание в Вашем случае это - версии Apache и PHP на вашем сервере.

Урезается placeholder..
Хотелось сделать внутри импута "Ваше имя" и стилизовать css
Но почему то режется код после value="" placeholder="Ваше имя" - обрезается
Спасибо

<p>Есть большой минус у Fornit или документации к нему. Вот у меня есть красивое всплывающее окно обратной связи, но оно не создано отдельным документом, а выплывает при помощи jquery! Так вот Formit с ней не работает.. И как настроить, я никак не пойму! Может быть вы встречались с чем-то подобным.</p>

Народ подскажите, инструкция на вид самая доступная из всех, что видел, все сделал по инструкции, но формы на сайте вообще не вижу...ни крючка, ни запятой... Она не по-просту не выводится... Где смотреть?

А если в Меню - Сайт и Обновить сайт (Очистить кэш сайта) Это первое, что приходит на ум. Ну а так, всё просто, ещё раз или два перечитайте пост и у вас всё получится!!!

<h1>
<strong>Вы задолбали копировать одни и теже статьи! Придумайте что-то свое или хотя бы измените код в статье!</strong></h1>

У них возникали вопросы связанные с неработоспособностью этого кода.
В комментариях выше можете почитать.
Другой вопрос, многие (точной статистики нет) бездумно копируют и вставляют код этой статьи на свои сайты даже не прочитав её внимательно. Я намеренно скопировал код формы обратной связи со своего сайта и указал в статье места в коде которые нужно изменить на свои. И сколько же писем с сайтов шло на мою почту до тех пор пока я не исправил адрес в коде?! Их были нет не сотни, всего лишь десятки.

Причин может быть много. Смотрите логи, указанный в FormIt почтовый домен и почта существуют и работают нормально?
Задайте вопрос в сапорт вашего хостинг провайдера. В общем однозначного ответа нет на ваш вопрос.

Добрый день! Сделал форму по Вашему описанию, всё работает, перемещает на страницу благодарности, но на почту так ничего не приходит
Сайт на хостинге. По идее всё в коде норм

Подскажите, в чём проблема то? Спасибо!

Внимательно прочтите статью.
Обратите внимание на чанк <form>
в частности строку №4 - &emailTo=`mail@mail.ru`
mail@mail.ru вы точно заменили на свой емейл?
Введите данные почтовых серверов yandex.ru, gmail.com ну или какая у вас есть. Ели это сработало, то проблема вашей почты на хостинге где расположен ваш сайт. Общение со службой поддержки хостинг-провайдера вам в помощь.

Добрый день! Заметил такую проблему, что если в форму ввести почту mail.ru (другие: яндекс, гугл и т.д работают) для связи с вами, то это сообщение не придёт на почту к админу сайта.

Может кто-то сталкивался? Может в Formit стоит ограничение для мэилрушных почт?

Спасибо заранее!

Меня тоже волнует этот вопрос. Подскажите, где я могу об этом прочитать?

orgazm-online.org

Становится всё более популярным делать интерактивные сайты используя AJAX технологию. И правда, зачем заставлять пользователя перегружать всю страницу, если есть возможность этого не делать. Особенно это актуально для мобильных устройств. На многих сайтах используется форма обратной связи для общения с клиентом. Давайте возьмём обычную форму и сделаем её аяксовой.

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для предотвращения спама.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.