При создании вашего очередного проекта, например - форум, при регистрации очередного пользователя есть необходимость быть уверенным в том, что данный пользователь был ознакомлен с условиями и правилами данного ресурса, иначе запретить для него возможность регистрации на сайте. Для решения данной задачи, можно использовать чекбокс при регистрации, если пользователь его отметил – значит он ознакомлен с правилами ресурса и может продолжать регистрацию, если не отметил – то запретить дальнейшую регистрацию. Как реализовать такой функционал в Drupal 7, я сейчас продемонстрирую. Как всегда в моём распоряжении стандартная тема «Bartik». А теперь собственно к реализации, открываем файл template.php вашего шаблона, если у вас его нет, то необходимо создать. И используем хук:
theme_form_user_register_form_alter(&$form, &$form_state, $form_id);
Данный хук позволяет нам переопределять форму регистрации пользователя. И теперь добавляем наш чекбокс и описание правил вашего ресурса, в моём случае это выглядит так:
<?php function bartik_form_user_register_form_alter(&$form, &$form_state, $form_id) { '#type' => 'checkbox', '#title' => "Я согласен с правилами и условиями сайта", '#description' => '<div style="width:300px; height:200px; overflow-y:scroll; border:1px solid;">Вы не должны ругаться матом и распространять спам </div>', '#required' => TRUE, ); } ?>

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

Как мы видим, всё выглядит так как мы и хотели. Если же вам необходимо сделать чекбокс не обязательным, то измените ключ #required на FALSE, т.е код должен выглядеть следующем образом:
<?php function bartik_form_user_register_form_alter(&$form, &$form_state, $form_id) { '#type' => 'checkbox', '#title' => "Я согласен с правилами и условиями сайта", '#description' => '<div style="width:300px; height:200px; overflow-y:scroll; border:1px solid;">Вы не должны ругаться матом и распространять </div>', '#required' => FALSE, ); } ?>
На этом всё.
Комментарии (3)
Спасибо большое! По Вашей инструкции получилось зарулить чекбокс с первого раза.
а можно тоже самое для формы обратной связи(webform) и что бы кнопка отправить была не активной до включения чекбокса?
да, используйте
вместо ID_FORM вставьте ID вашей формы