+7 (999) 229-34-22
Про добавление соглашения в формы есть хорошая документация у битрикса и много примеров в интернете. В этой статье я покажу, как добавить соглашение в форму обратной связи bitrix:main.feedback и настроить его внешний вид на свой вкус без сложных телодвижений.
Если вы пришли почитать только про настройку соглашений, то можете сразу перейти к другим вариантам настройки.
Добавляем соглашение:
Настройки → Настройки продукта → Соглашения
Название, например, "Согласие на обработку персональных данных"
1 Тип - Стандартное согласие на обработку персональных данных «Russian» (сначала рассмотрим этот вариант)
Заполняем название и адрес компании, битрикс их подставит в соглашение.
Сохраняем.
Теперь добавляем на страницу компонент "Форма обратной связи" bitrix:main.feedback и копируем шаблон компонента в текущий шаблон сайта со своим названием, например, «my»
Открываем файл /путь_к_вашему_шаблону/ components/bitrix/ main.feedback/my/template.php
<?if ($arParams['USER_CONSENT'] == 'Y'):?><?$APPLICATION->IncludeComponent(
"bitrix:main.userconsent.request",
"",
array(
"ID" => $arParams["USER_CONSENT_ID"],
"IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
"AUTO_SAVE" => "Y",
"IS_LOADED" => $arParams["USER_CONSENT_IS_LOADED"],
"REPLACE" => array(
"button_caption" => GetMessage("MFT_SUBMIT"), //сюда ставим текст с кнопки
),
)
);?><?endif;?>
ID - это id нашего соглашения. Можно, конечно, поставить его прямо здесь, также как параметры IS_CHECKED и IS_LOADED, но хотелось бы иметь возможность их редактировать через настройки компонента формы.
Однако, сейчас в настройках формы этих полей нет.
Добавим их.
Открываем(создаем) файл /путь_к_вашему_шаблону/ components/bitrix/ main.feedback/my/.parameters.php
И добавляем в $arTemplateParameters массив USER_CONSENT без всяких описаний
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arTemplateParameters = array(
"USER_CONSENT" => array(),
);
?>
Этого параметра достаточно, чтобы в настройках компонента появились все нужные поля.
Теперь выбираем наше соглашение и сохраняем. Получилось так:
Все отлично, но если кликнуть по тексту, то откроется окно соглашения с %fields% вместо названия полей.
Исправим. Добавляем в REPLACE нужные нам названия полей, я здесь скопировала те, которые подставляются в форме:
<?if ($arParams['USER_CONSENT'] == 'Y'):?><?$APPLICATION->IncludeComponent(
"bitrix:main.userconsent.request",
"",
array(
"ID" => $arParams["USER_CONSENT_ID"],
"IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
"AUTO_SAVE" => "Y",
"IS_LOADED" => $arParams["USER_CONSENT_IS_LOADED"],
"REPLACE" => array(
"button_caption" => GetMessage("MFT_SUBMIT"), //сюда ставим текст с кнопки
"fields" => [GetMessage("MFT_NAME"),GetMessage("MFT_EMAIL")] //сюда ставим названия полей формы
),
)
);?><?endif;?>
Теперь все отлично.
Таким же способом соглашение добавляется в собственные компоненты.
2 Допустим, у нас есть свой текст соглашения, составленный юристом для нас лично.
В настройках выбираем
Тип - Собственное.
Загружаем свой текст в поле для соглашения. Сохраняем.
Получилось так. Текст рядом с галочкой можно изменить в настройках соглашения на вкладке "Подпись и поведение".
Открываем соглашение и видим, что в названии фрагмент первой строки.
Добавим в начало текста соглашения строку "Согласие на обработку персональных данных" и пустую строку. Теперь хорошо.
3 Идем дальше - мы сделали на сайте страницу "Политика обработки персональных данных" и хотим, чтобы по клику на подпись пользователь мог на нее перейти.
В настройках соглашения на вкладке "Подпись и поведение" ставим галочку "При клике на ссылку открывать стороннюю ссылку или файл" и указываем адрес нашей страницы.
Все работает, но эта длинная ссылка выглядит не очень красиво. И теперь не очень удобно, что приходится попадать точно в checkbox, чтобы поставить галочку.
Конечно, можно скопировать шаблон компонента и там поменять верстку, но мы сделаем проще - в тексте подписи выделяем фрагмент, который хотим сделать ссылкой, % в начале и % в конце. У меня это %политикой конфиденциальности%
Вот теперь все выглядит отлично.