Как вставить в форму обязательный чекбокс «Соглашение на обработку пользовательских данных»?

Данный метод работает, начиная с версии 6.9.23

 

Если в форме пользователь вводит какие-либо персональные данные, то он обязан согласиться на обработку этих данных. Для этого вставляем обязательный к заполнению Чекбокс. Если этот чекбокс не выбран, то форма не отправится

 

1. Встраивание в шаблон.
Этот вариант вернет в место вызова HTML код и добавить обработчик в реестр.

Рекомендуется добавить следующий код в форму перед кнопкой отправки формы:
<?php
     echo MG::addAgreementCheckbox(
       'класс', 
         array(
           'text' => 'Я даю согласие на обработку моих ', 
           'textLink' => 'персональных данных.'
         ) 
     );
?>


Примечание: На месте класс должен быть  уникальный класс кнопки отправки формы, которую необходимо заблокировать при неотмеченном чекбоксе.
Встраиваем в шаблон

2.Встраивание в вёрстку плагина.
Этот вариант вызывается в конструкторе и обработчике шорткода плагина, если верстка генерируется шорткодом.


2.1 Добавление обработчика в реестр(вызывается в обработчике шорткода плагина).

В конструкторе плагина добавляем класс в реестр обработчиков:
<?php
MG::addAgreementCheckbox('класс', array(), 'addRegistry');
?>



2.2 Вызывается в версте формы плагина(вызывается в обработчике шорткода плагина).

Добавляем к переменной, содержащей верстку:
<?php
     MG::addAgreementCheckbox(
       'класс',
        array(
        'text' => 'Я даю согласие на обработку моих ', 
        'textLink' => 'персональных данных'
      ) 
 );
?>

3. Встраиваем в форму плагина, сгенерированную Javascript“om.
Этот вариант запишет html код в JS переменную и добавит обработчик в реестр (вызывается в конструкторе плагина, если верстка генерируется javascript'ом).

Итак, если форма создаётся в JS, то в конструкторе прописываем:
<?php>
       MG::addAgreementCheckbox(
         'класс', 
         array(
           'text' => 'Я даю согласие на обработку моих ', 
           'textLink' => 'персональных данных.'
         ), 
         'addJSVariable', 
         'имя-JS-переменной'
       );
?>


'имя-JS-переменной' — содержит верстку чекбокса для использования внутри JS.
В JS плагина вставить эту переменную в место вертски формы.



4. Для всех остальных случаев.
Вместе с версткой чекбокса выводится код обработчика(Этот способ универсален, но не рекомендуется т.к. он «засоряет» код).
<?php
  MG::addAgreementCheckbox(
    'класс', 
    array(
      'text' => 'Я даю согласие на обработку моих ', 
      'textLink' => 'персональных данных.'
    ), 
    'addInlineScript'
   );
?>

Где можно редактировать текст соглашения на обработку пользовательских данных?


Чтобы изменить текст соглашения перейдите Настройки - Шаблон - Шаблоны Блоков - layout_agreement.php

Этот файл есть только в шаблоне mg-default, для всех остальных шаблонов этот файл необходимо скопировать в папку layout вашего шаблона и изменить текст при необходимости.