Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе).

Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе)

Часто приходится использовать форму обратной связи в редакии «Старт». Можно сделать свою без всяких компонентов, а просто кодом, но иногда достаточно использовать стандартную форму обратной связи, добавив или изменив нужные поля.

Данный материал описывает добавление одного поля в форму из страндартного комлекта Битрикса «Старт».

Сначала нужно создать свое пространство имен, чтобы обновления не затирали наши изменения, нужно стараться это делать обязательно.

1. Создаем в /bitrix/components/ свою папку, например, /dapit/.

2. В вновь созданную папку /dapit/ копируем из папки /bitrix/components/bitrix/ папку /main.feedback/.

3. Далее создаем папку /dapit/ для шаблонов с новым пространством имен в /bitrix/templates/ваш_шаблон/components/.

4. Создаем в ней папку шаблона /main.feedback/ и копируем в нее все файлы отсюда /components/dapit/main.feedback/templates/.default.

5. Правим файл template.php уже из папки /components/dapit/main.feedback/templates/main.feedback/, добавляя в него одно поле, например, «Удобное время для звонка». За основу берем поле «Имя».

На его основе создаем еще одно, прописываме новые значения и вставляем где нужно, наприме сразу по полем имя и у нас получтся следующее:

……Выше код мы не трогали……

<div>
<div>
<?=GetMessage(«MFT_NAME»)?><?if(empty($arParams[«REQUIRED_FIELDS»]) || in_array(«NAME», $arParams[«REQUIRED_FIELDS»])):?><span>*</span><?endif?>
</div>
<input type=»text» name=»user_name» value=»<?=$arResult[«AUTHOR_NAME»]?>»>
</div>

<div>
<div>
<?=GetMessage(«MFT_TIME»)?><?if(empty($arParams[«REQUIRED_FIELDS»]) || in_array(«TIME», $arParams[«REQUIRED_FIELDS»])):?><span>*</span><?endif?>
</div>
<input type=»text» name=»time» value=»<?=$arResult[«TIME»]?>»>
</div>

……Ниже код мы не трогали……

6. Изменяем файл /bitrix/templates/ваш_шаблог/components/dapit/main.feedback/forma/lang/ru/template.php добавили одну строку с MFT_TIME

<?
$MESS [‘MFT_NAME’] = «Ваше имя»;
$MESS [‘MFT_TIME’] = «Удобное время для звонка»;
$MESS [‘MFT_EMAIL’] = «Ваш E-mail»;
$MESS [‘MFT_MESSAGE’] = «Сообщение»;
$MESS [‘MFT_CAPTCHA’] = «Защита от автоматических сообщений»;
$MESS [‘MFT_CAPTCHA_CODE’] = «Введите слово на картинке»;
$MESS [‘MFT_SUBMIT’] = «Отправить»;
?>

Шаблон готов.

7. Теперь самое сложное, это оставшаяся кастомизация компонента в /bitrix/components/dapit/main.feedback/component.php. Тут я приведу сразу готовый код измененного стандатного файла. Везде где есть слово time или TIME, это то, что добавилось в нем.

<?
if(!defined(«B_PROLOG_INCLUDED»)||B_PROLOG_INCLUDED!==true)die();
$arParams[«USE_CAPTCHA»] = (($arParams[«USE_CAPTCHA»] != «N» && !$USER->IsAuthorized()) ? «Y» : «N»);
$arParams[«EVENT_NAME»] = trim($arParams[«EVENT_NAME»]);
if(strlen($arParams[«EVENT_NAME»]) <= 0)
$arParams[«EVENT_NAME»] = «FEEDBACK_FORM»;
$arParams[«EMAIL_TO»] = trim($arParams[«EMAIL_TO»]);
if(strlen($arParams[«EMAIL_TO»]) <= 0)
$arParams[«EMAIL_TO»] = COption::GetOptionString(«main», «email_from»);

$arParams[«EVENT_TIME»] = trim($arParams[«EVENT_TIME»]);

if(strlen($arParams[«EVENT_TIME»]) <= 0)

$arParams[«EVENT_TIME»] = «FEEDBACK_FORM»;
$arParams[«OK_TEXT»] = trim($arParams[«OK_TEXT»]);
if(strlen($arParams[«OK_TEXT»]) <= 0)
$arParams[«OK_TEXT»] = GetMessage(«MF_OK_MESSAGE»);
if($_SERVER[«REQUEST_METHOD»] == «POST» && strlen($_POST[«submit»]) > 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)
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_REQ_NAME»);
if((empty($arParams[«REQUIRED_FIELDS»]) || in_array(«EMAIL», $arParams[«REQUIRED_FIELDS»])) && strlen($_POST[«user_email»]) <= 1)
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_REQ_EMAIL»);
if((empty($arParams[«REQUIRED_FIELDS»]) || in_array(«MESSAGE», $arParams[«REQUIRED_FIELDS»])) && strlen($_POST[«MESSAGE»]) <= 3)
$arResult[«ERROR_MESSAGE»][] = GetMessage(«MF_REQ_MESSAGE»);
}
if(strlen($_POST[«user_email»]) > 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_EMAIL» => $_POST[«user_email»],
«TIME» => $_POST[«time»],
«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_EMAIL»] = htmlspecialcharsEx($_POST[«user_email»]);
$_SESSION[«MF_TIME»] = htmlspecialcharsEx($_POST[«time»]);
LocalRedirect($APPLICATION->GetCurPageParam(«success=Y», Array(«success»)));
}
$arResult[«MESSAGE»] = htmlspecialcharsEx($_POST[«MESSAGE»]);
$arResult[«AUTHOR_NAME»] = htmlspecialcharsEx($_POST[«user_name»]);
$arResult[«AUTHOR_EMAIL»] = htmlspecialcharsEx($_POST[«user_email»]);
$arResult[«TIME»] = htmlspecialcharsEx($_POST[«time»]);
}
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());
$arResult[«TIME»] = 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_TIME»]) > 0)

$arResult[«TIME»] = htmlspecialcharsEx($_SESSION[«MF_TIME»]);
}
}
if($arParams[«USE_CAPTCHA»] == «Y»)
$arResult[«capCode»] = htmlspecialchars($APPLICATION->CaptchaGetCode());
$this->IncludeComponentTemplate();
?>

8. Изменяем языковой файл /bitrix/components/dapit/main.feedback/lang/ru/.parameters.php, опять же добавили лишь одну строку с TIME.

<?
$MESS [‘MFP_CAPTCHA’] = «Использовать защиту от автоматических сообщений (CAPTCHA) для неавторизованных пользователей»;
$MESS [‘MFP_OK_MESSAGE’] = «Сообщение, выводимое пользователю после отправки»;
$MESS [‘MFP_OK_TEXT’] = «Спасибо, ваше сообщение принято.»;
$MESS [‘MFP_EMAIL_TO’] = «E-mail, на который будет отправлено письмо»;
$MESS [‘MFP_REQUIRED_FIELDS’] = «Обязательные поля для заполнения»;
$MESS [‘MFP_ALL_REQ’] = «(все необязательные)»;
$MESS [‘MFP_NAME’] = «Имя»;
$MESS [‘MFP_TIME’] = «Удобное время для звонка»;
$MESS [‘MFP_MESSAGE’] = «Сообщение»;
$MESS [‘MFP_EMAIL_TEMPLATES’] = «Почтовые шаблоны для отправки письма»;
?>

9. Напоследок заходим в Административной части Настройки —> Настройки продукта —> Почтовые события —> Почтовые шаблоны в «Отправка сообщения через форму обратной связи» и вставляем там наше поле TIME:

Информационное сообщение сайта #SITE_NAME#
——————————————

Вам было отправлено сообщение через форму обратной связи

Автор: #AUTHOR#
E-mail автора: #AUTHOR_EMAIL#
Удобное время для звонка: #TIME#

Текст сообщения:
#TEXT#

Сообщение сгенерировано автоматически.

Если я ничего не упустил, то теперь все должно получиться и работать.

Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе).

19 мыслей о “Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе).

  • 09.02.2013 в 01:11
    Permalink

    Короче я битрикс в рот бомбил!!!

  • 09.04.2013 в 22:35
    Permalink

    Александр, главное разобраться, и у вас все получится!

  • 17.05.2013 в 12:48
    Permalink

    Подскажите как поменять почту в форме обратной связи если в почтовых событиях кодировка?
    Я начинающий пользователь и не могу никак разобраться

  • 17.05.2013 в 14:59
    Permalink

    Почту можно поменять в настройках компонента или напрямую прописать в месте где выводится компонент обратной связи через php-редактирование

  • 21.04.2023 в 08:51
    Permalink

    Здравствуйте, моё имя Александра. Заинтересовал Ваш сайт, хотелось бы сотрудничать на взаимовыгодных условиях. А именно, купить пару-тройку (возможно и больше) статей со ссылкой на наши ресурсы. Подскажите, какие у Вас требования к публикациям?
    Жду Ваш ответ на aleksandraborovaa4@gmail.com!

  • 26.04.2023 в 09:32
    Permalink

    Получайте деньги легко зарабатвая на телефоне , решая легкие задания!

    У каждого из вас есть доступная возможность получить, как дополнительный заработок, так и работу дома!
    С Profittask Вы можете зарабатывать до 1000 руб. в день, выполнив простые задания, находясь в своей квартире с доступом в интернет!

    Чтобы создать легкий интернет заработок, вам необходимо всего лишь [b][url=https://profittask.com/?from=4102/]скачать небольшую программу[/url][/b] и начать зарабатывать уже сейчас!
    Поверьте это легко, просто и доступно каждому — без вложений и специальных навыков попробуйте у вас непременно получится!
    [url=https://profittask.com/?from=4102]заработок в интернете за просмотр видео[/url]

  • 08.05.2023 в 00:04
    Permalink

    будем посмотреть

    ——-
    [url=https://msk.modulboxpro.ru/arenda/]https://msk.modulboxpro.ru/arenda/[/url]

    Я извиняюсь, но, по-моему, Вы не правы. Я уверен. Могу это доказать. Пишите мне в PM, пообщаемся.

    ——-
    [url=https://piterskie-zametki.ru/225042]https://piterskie-zametki.ru/225042[/url]

    А еще варианты?

    ——-
    [url=https://gurava.ru/geocities/43/%D0%91%D0%BE%D0%B4%D0%B0%D0%B9%D0%B1%D0%BE?property_type=1&purpose_type=1]https://gurava.ru/geocities/43/%D0%91%D0%BE%D0%B4%D0%B0%D0%B9%D0%B1%D0%BE?property_type=1&purpose_type=1[/url]

    Это не более чем условность

    ——-
    [url=https://portotecnica.su/product/show/id/2074/]https://portotecnica.su/product/show/id/2074/[/url]

    Совершенно верно! Идея отличная, поддерживаю.

    ——-
    [url=https://opt24.store/product-category/napitki/rastvorimye_napitki/]https://opt24.store/product-category/napitki/rastvorimye_napitki/[/url]

    Я извиняюсь, но, по-моему, Вы не правы. Могу отстоять свою позицию. Пишите мне в PM, обсудим.

    ——-
    [url=https://xn--80adbhccsco0ahgdgbcre0b.xn--p1acf/]каркасно щитовые дома в сочи проекты[/url]

    Большое спасибо за информацию, теперь я не допущу такой ошибки.

    ——-
    [url=https://xn--80aakfajgcdf8bbqzbrl1h3d.xn--p1ai/]отделка квартир сочи[/url]

    Все фоты просто отпад

    ——-
    [url=https://venro.ru/]Накрутить просмотры инстаграм[/url]

    Буду знать, большое спасибо за информацию.

    ——-
    [url=https://venro.ru/]https://venro.ru/[/url]

    Извиняюсь, но не могли бы Вы дать больше информации.

    ——-
    [url=https://eldoradovcf.xyz/]https://eldoradovcf.xyz/[/url]

  • 09.05.2023 в 15:05
    Permalink

    Прелестное сообщение

    ——-
    [url=https://msk.modulboxpro.ru/arenda/]https://msk.modulboxpro.ru/arenda/[/url]

    Эта блестящая фраза придется как раз кстати

    ——-
    [url=https://piterskie-zametki.ru/225467]https://piterskie-zametki.ru/225467[/url]

    всем боятся он опасен…я ухожу!!!!!!!

    ——-
    [url=https://gurava.ru/geocities/53/%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC%D0%BE%D0%B2%D0%B8%D1%87?property_type=1&purpose_type=2]https://gurava.ru/geocities/53/%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC%D0%BE%D0%B2%D0%B8%D1%87?property_type=1&purpose_type=2[/url]

    молодец

    ——-
    [url=https://portotecnica.su/category/show/id/115/]https://portotecnica.su/category/show/id/115/[/url]

    Извините, что я Вас прерываю.

    ——-
    [url=https://opt24.store/product-category/marmelad/]https://opt24.store/product-category/marmelad/[/url]

    Оххх буду зубрить новый талант

    ——-
    [url=https://xn--80adbhccsco0ahgdgbcre0b.xn--p1acf/]проектирование водоснабжения в сочи[/url]

    та ну их

    ——-
    [url=https://xn--80aakfajgcdf8bbqzbrl1h3d.xn--p1ai/]согласование перепланировки сочи[/url]

    Вы не правы. Предлагаю это обсудить. Пишите мне в PM, поговорим.

    ——-
    [url=https://venro.ru/]накрутка просмотров в инсте[/url]

    Замечательно, это забавный ответ

    ——-
    [url=https://venro.ru/]https://venro.ru/[/url]

    Какие слова… супер, замечательная идея

    ——-
    [url=https://eldoradovcf.xyz/]https://eldoradovcf.xyz/[/url]

  • 14.05.2023 в 13:09
    Permalink

    Да ладно вам , выдумано — не выдумано , всё рано смешно

  • 18.05.2023 в 15:15
    Permalink

    понравилось ОДОБРЯЕМ!!!!!!!!!!!

  • 24.05.2023 в 02:23
    Permalink

    Авторитетная точка зрения, познавательно..

  • 04.06.2023 в 08:33
    Permalink

    I go to see day-to-day some web sites and blogs to read articles, except this web site provides quality based posts.

  • 07.06.2023 в 19:25
    Permalink

    I love your blog.. very nice colors & theme. Did you create this
    website yourself or did you hire someone to do it for you?
    Plz answer back as I’m looking to construct my own blog and would like
    to find out where u got this from. appreciate it

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *