Форма обратной связи
Компонент выводит форму для отправки сообщения с сайта на E-mail. Компонент является стандартным и входит в дистрибутив модуля.
Для работы формы не требуется модуль Почта.
Компонент относится к Главному модулю.
Параметры
| Поле | Параметр | Описание |
| Основные параметры | ||
|---|---|---|
| Использовать защиту от автоматических сообщений (CAPTCHA) для неавторизованных пользователей | USE_CAPTCHA | [Y|N] При отмеченной опции для неавторизованных пользователей будет использоваться CAPTCHA при создании сообщений. |
| Сообщение, выводимое пользователю после отправки | OK_TEXT | Задается текст сообщения, выводимый пользователю после отправки. |
| E-mail, на который будет отправлено письмо | EMAIL_TO | Задается E-mail, на который будет отправлено письмо (будет отображен в форме для отправки сообщений в поле Ваш E-mail). |
| Обязательные поля для заполнения | REQUIRED_FIELDS | Указываются поля формы, которые будут обязательными для заполнения. |
| Почтовые шаблоны для отправки письма | EVENT_MESSAGE_ID | Указывается почтовый шаблон, на основе которого будут отправляться письма. |
Если компонент размещён на сайте, настроен, но сообщения не приходят, необходимо:
- С помощью Проверки системы необходимо убедиться что почта уходит с сайта.
- Убедиться, что есть активный почтовый шаблон FEEDBACK_FORM.
- Убедиться, что в шаблоне проставлен валидный адрес в поле Кому.
Пример вызова
IncludeComponent("bitrix:main.feedback","",Array( "USE_CAPTCHA" => "Y", "OK_TEXT" => "Спасибо, ваше сообщение принято.", "EMAIL_TO" => "my@email.com", "REQUIRED_FIELDS" => Array("NAME","EMAIL","MESSAGE"), "EVENT_MESSAGE_ID" => Array("5") ) );?>
Настройка форм обратной связи
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы ( Marketplace > Обновление платформы ).
Ограничений нет
В готовом решении «Некстайп: Прайм» созданы семь видов форм обратной связи:
- Форма «Заказать услугу». Используется на детальной странице «Услуги».
- Форма «Заказать звонок». Используется в «шапке» сайта.
- Форма «Задать вопрос». Используется на странице «Контакты» и на других внутренних страницах сайта.
- Форма «Задать вопрос о товаре». Используется в на страницах товаров.
- Форма «Заказать проект». Используется на детальной странице «Проекты».
- Форма «Оформить заказ». Используется в корзине в случае, когда решение установлено на редакцию «Стандарт» CMS «1С-Битрикс: управление сайтом».
- Форма «Резюме». Используется в разделе «Компания» > «Карьера в компании».
Все формы обратной связи созданы с использованием модуля «Веб-формы» от «1С-Битрикс: управление сайтом».
Перед тем как приступить к настройке и редактированию форм обратной связи необходимо выполнить настройку модуля «Веб-формы».
Для этого необходимо:
- авторизоваться в административном разделе сайта с правами администратора;
- перейти в раздел «Настройки» > «Настройки продукта» > «Настройки модулей» > «Веб-формы»;
- убрать галочку для параметра «Использовать упрощённый режим редактирования форм»:
Сохраните настройки модуля.
Для настройки форм обратной связи, необходимо:

- авторизоваться в административном разделе сайта с правами администратора;
- перейти в раздел «Сервисы» > «Веб-формы» > «Настройка форм»:
Для редактирования каждой формы, нужно нажать «Изменить» для необходимой формы:
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала.
ООО «Некстайп» 2022 © Все права защищены
Создание формы обратной связи на битрикс
Посмотрите откуда компонент берет данные. Если из инфоблока, то добавьте свойства в инфоблок. Если из «Сервисы»-«Веб-формы», то добавляйте там поля.
22 мая 2018 в 13:05
ни то, ни другое. Стандартная «форма обратной связи» из вкладки «Служебные»
22 мая 2018 в 13:21
Да уже увидел не смог посмотреть сразу посольку сайт с докой по битриксу лежал. Нашел решение, которое должно вам подойти. Опубликовал в ответе.
22 мая 2018 в 14:51
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Поскольку форма обратной связи в битрикс является стандартным компонентом движка она обновляется вместе с движком, и чтобы обновления не касались изменений внесенных в форму руками нужно сделать свое пространство имен. Для этого копируются основные папки модуля и создаются новые.
/bitrix/components/newform/ /bitrix/templates/ваш_шаблон/components/newform/
/bitrix/components/bitrix/main.feedback/ в /bitrix/components/newform/main.feedback/ /components/main.feedback/ в /bitrix/templates/ваш_шаблон/components/newform/main.feedback/
И далее модифицируем компонент. Подобный вопрос подробно рассматривается в этой статье
Изменение формы обратной связи в Битрикс
Если в редакцию Битрикс не входит компонент веб-формы, но очень хочется добавить свою форму, то можно ее создать на основе формы обратной связи или просто изменить существующую добавив нужные поля и изменив уже существующие.
Поскольку форма обратной связи в битрикс является стандартным компонентом движка она обновляется вместе с движком, и чтобы обновления не касались изменений внесенных в форму руками нужно сделать свое пространство имен. Для этого копируются основные папки модуля и создаются новые.
Создаем папки:
/bitrix/components/newform/
/bitrix/templates/ваш_шаблон/components/newform/
Копируем:
/bitrix/components/bitrix/main.feedback/ в /bitrix/components/newform/main.feedback/
/components/main.feedback/ в /bitrix/templates/ваш_шаблон/components/newform/main.feedback/
Правим файл /components/newform/main.feedback/templates/main.feedback/template.php, добавляя в него новое поле, например, «Телефон». За основу берем любое готовое поле.
Изменяем файл /bitrix/templates/ваш_шаблон/components/newform/main.feedback/.default/lang/ru/template.php
Изменяем файл /bitrix/components/newform/main.feedback/component.php
IsAuthorized()) ? «Y» : «N»);
$arParams[«EVENT_NAME»] = trim($arParams[«EVENT_NAME»]);
if(strlen($arParams[«EVENT_NAME»]) 0)
if(check_bitrix_sessid())
if(empty($arParams[«REQUIRED_FIELDS»]) || !in_array(«NONE», $arParams[«REQUIRED_FIELDS»]))
if((empty($arParams[«REQUIRED_FIELDS»]) || in_array(«NAME», $arParams[«REQUIRED_FIELDS»])) && strlen($_POST[«user_name»]) 1 && !check_email($_POST[«user_email»]))
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_EMAIL_NOT_VALID»);
if($arParams[«USE_CAPTCHA»] == «Y»)
include_once($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/main/classes/general/captcha.php»);
$captcha_code = $_POST[«captcha_sid»];
$captcha_word = $_POST[«captcha_word»];
$cpt = new CCaptcha();
$captchaPass = COption::GetOptionString(«main», «captcha_password», «»);
if (strlen($captcha_word) > 0 && strlen($captcha_code) > 0)
if (!$cpt->CheckCodeCrypt($captcha_word, $captcha_code, $captchaPass))
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_CAPTCHA_WRONG»);
>
else
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_CAPTHCA_EMPTY»);
>
if(empty($arResult))
$arFields = Array(
«AUTHOR» => $_POST[«user_name»],
«AUTHOR_TELL» => $_POST[«user_tell»],
«AUTHOR_TIME» => $_POST[«user_time»],
«AUTHOR_EMAIL» => $_POST[«user_email»],
«EMAIL_TO» => $arParams[«EMAIL_TO»],
«TEXT» => $_POST[«MESSAGE»],
);
if(!empty($arParams[«EVENT_MESSAGE_ID»]))
foreach($arParams[«EVENT_MESSAGE_ID»] as $v)
if(IntVal($v) > 0)
CEvent::Send($arParams[«EVENT_NAME»], SITE_ID, $arFields, «N», IntVal($v));
>
else
CEvent::Send($arParams[«EVENT_NAME»], SITE_ID, $arFields);
$_SESSION[«MF_NAME»] = htmlspecialcharsEx($_POST[«user_name»]);
$_SESSION[«MF_TELL»] = htmlspecialcharsEx($_POST[«user_tell»]);
$_SESSION[«MF_TIME»] = htmlspecialcharsEx($_POST[«user_time»]);
$_SESSION[«MF_EMAIL»] = htmlspecialcharsEx($_POST[«user_email»]);
LocalRedirect($APPLICATION->GetCurPageParam(«success=Y», Array(«success»)));
>
$arResult[«MESSAGE»] = htmlspecialcharsEx($_POST[«MESSAGE»]);
$arResult[«AUTHOR_TELL»] = htmlspecialcharsEx($_POST[«user_tell»]);
$arResult[«AUTHOR_TIME»] = htmlspecialcharsEx($_POST[«user_time»]);
$arResult[«AUTHOR_NAME»] = htmlspecialcharsEx($_POST[«user_name»]);
$arResult[«AUTHOR_EMAIL»] = htmlspecialcharsEx($_POST[«user_email»]);
>
else
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_SESS_EXP»);
>
elseif($_REQUEST[«success»] == «Y»)
$arResult[«OK_MESSAGE»] = $arParams[«OK_TEXT»];
>
if(empty($arResult[«ERROR_MESSAGE»]))
if($USER->IsAuthorized())
$arResult[«AUTHOR_NAME»] = htmlspecialcharsEx($USER->GetFullName());
$arResult[«AUTHOR_EMAIL»] = htmlspecialcharsEx($USER->GetEmail());
>
else
if(strlen($_SESSION[«MF_NAME»]) > 0)
$arResult[«AUTHOR_NAME»] = htmlspecialcharsEx($_SESSION[«MF_NAME»]);
if(strlen($_SESSION[«MF_EMAIL»]) > 0)
$arResult[«AUTHOR_EMAIL»] = htmlspecialcharsEx($_SESSION[«MF_EMAIL»]);
if(strlen($_SESSION[«MF_TELL»]) > 0)
$arResult[«TELL»] = htmlspecialcharsEx($_SESSION[«MF_TELL»]);
if(strlen($_SESSION[«MF_TIME»]) > 0)
$arResult[«TIME»] = htmlspecialcharsEx($_SESSION[«MF_TELL»]);
>
>
if($arParams[«USE_CAPTCHA»] == «Y»)
$arResult[«capCode»] = htmlspecialchars($APPLICATION->CaptchaGetCode());
И добавить код для вывода компонента в одну из страниц шаблона:
IncludeComponent(
«newform:main.feedback»,
«»,
Array(
«USE_CAPTCHA» => «Y»,
«OK_TEXT» => «Спасибо, ваше сообщение принято.»,
«EMAIL_TO» => «куда@отправлять.ру»,
«REQUIRED_FIELDS» => array(),
«EVENT_MESSAGE_ID» => array()
)
);?>
Также нужно изменить шаблон письма в Настройки > Настройки продукта > Почтовые события > Почтовые шаблоны в «Отправка сообщения через форму обратной связи»
Вам было отправлено сообщение через форму обратной связи
Автор: #AUTHOR#
E-mail автора: #AUTHOR_EMAIL#
Телефон: #AUTHOR_TELL#
Удобное время для звонка: #AUTHOR_TIME#
Текст сообщения:
#TEXT#
Сообщение сгенерировано автоматически.
