Добрый день Есть идея, в связи с ФЗ-152 захотелось встроить чекбокс согласия пользователя с обраб...

Социальная сеть
Данное сообщество не является официальным и не преследует ни каких целей. Владелец сайта оставляет за собой право удалять сообщения по своему усмотрению. Рекламные темы и сообщения только с согласия администратора.

Вход Регистрация
Быстрый вход / регистрация, через социальную сеть
Регистрируясь на сайте, Вы безоговорочно принимаете условия политики конфеденциальности и обработки персональных данных

Александр Листьев

Дата последнего входа: 3 месяца назад
Дата регистрации: 29 Декабря 2017 9:03
День рождения: 5 июля
Пол: Мужской
Александр Листьев -> Всем
25 августа 0:24
Добрый день

Есть идея, в связи с ФЗ-152 захотелось встроить чекбокс согласия пользователя с обработкой персональной информацией в форму почтовой рассылки (компонент subscribe.form, не sender.subscribe), и в форму регистрации пользователей на сайте, если кто-то уже сталкивался с похожей задачей, коллеги прошу Вас поделиться советом, как реализовать задуманное?

Использую main.userconsent.request для достижения цели.

p.s. По такому запросу в Интернете, найдены несколько сайтов с одинаковой подсказкой, но только для компонента sender.subscribe, пробовал адаптировать её под компонент subscribe.form, делал все по описанной схеме, но увы галочка не выводится.
Соглашение создано, ID соглашения - прописан
в компоненте вывода main.userconsent.request. Код вызова компонента вывожу перед кнопкой отправки, но не показывается.

Опишу по шагам мои действия:

1. В директории компонента subscribe.form в файле .parameters прописал в самом верху следующий код:
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = array(
   "GROUPS" => array(
   ),
   "PARAMETERS" => array(
       "AJAX_MODE" => array(),
       "USER_CONSENT" => array(),
   )
);
2. Далее в шаблоне компонента subscribe.form, прописываю код вызова компонента main.userconsent.request с указанным ID пользовательского соглашения
<?$APPLICATION->IncludeComponent(
   "bitrix:main.userconsent.request", "",
   array(
       "ID" => "1", // Идентификатор соглашения
       "IS_CHECKED" => "N", // Галка согласия проставлена по умолчанию
       "AUTO_SAVE" => "N",  // Загружать текст соглашения сразу
       "IS_LOADED" => "N", // Сохранять автоматически факт согласия
       "REPLACE" => array(
           'button_caption' => 'Подписаться',
           'fields' => array('Email', 'Телефон', 'Имя')
       ),
   )
);?>

Михаил Базаров
Точно в правильном месте вставляете вызов компонента?
Там несколько условий для вывода, быть может за рамками нужного if-а dytckb tuj
Скиньте шаблон компонента целиком- посмотрим
Александр Листьев
Благодарю, за отклик

В административном разделе сайта по пути: /bitrix/components/bitrix/subscribe.form
В файле параметров .parameters.php для компонента subscribe.form
объявляю параметр "USER_CONSENT" => array() следующим образом:

Файл .parameters.php (файл параметров компонента)
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = array(
   "GROUPS" => array(
   ),
   "PARAMETERS" => array(
    "AJAX_MODE" => array(),
    "USER_CONSENT" => array(),
   )
);

Далее код вызова компонента (для запроса согласия пользователя с соглашением на обработку персональной информации) - main.userconsent.request, вставляю в файл template.php, компонента subscribe.form

Файл template.php (шаблон компонента)
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<div class="widget subscribe-widget">

<form class="subscribe-form" action="<?=$arResult["FORM_ACTION"]?>">

<h1>Подписаться на новостную рассылку</h1>

<!-- Форма для ввода e-mail адреса -->

<input type="text" name="sf_EMAIL" id="subscribe" placeholder="Email" value="<?=$arResult["EMAIL"]?>"/>

<!-- Кнопка подтверждение -->

<button name="OK" id="submit-subscribe" value="<?=GetMessage("subscr_form_button")?>">
   <i class="fa fa-arrow-circle-right"></i>
</button>

<!-- Начало вызова компонента -->

<?if ($arParams['USER_CONSENT'] == 'Y'):?>

<?$APPLICATION->IncludeComponent(
"bitrix:main.userconsent.request", "",
array(
   "ID" => "1",                       // Идентификатор соглашения
   "IS_CHECKED" => "N",   // Чекбокс согласия проставлен по умолчанию
   "AUTO_SAVE" => "N",      // Загружать текст соглашения сразу
   "IS_LOADED" => "N",     // Сохранять автоматически факт согласия

   "REPLACE" => array(
       'button_caption' => 'Подписаться',
       'fields' => array('Email', 'Телефон', 'Имя')
   ),
)

);?>

<?endif;?>

<!-- Конец вызова компонента -->

<p>Получать обновления  раз в месяц</p>

</form>
</div>  

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

Интересно, что даже после всех описанных выше манипуляций в параметрах компонента "Форма подписки" колонка "Согласие пользователя" с подпунктом "Запрашивать согласие пользователя" так и не появилась.

Битрикс обновленный, указанные компоненты в системе имеются :)