Модификация формы регистрации в drupal

После установки, регистрационная форма друпала (drupal) имеет всего пару полей — login и email. В большинстве случаев это можно почитать за благо. Ибо по моему разумению большего и не надо, разве что поле проверочного кода добавить для предотвращения авторегистраций.

Но суровые будни показывают, что для коммерческих сайтов важно собрать хотя бы минимальную анкету о пользователях, которые регистрируются на сайте. Есть желание сразу разделить физических и юридических лиц, узнать, к примеру, ФИО, тел контактного лица, чтобы менеджер по работе с клиентами мог обработать данного потенциального клиента.

Расширяем анкету пользователя и добавляем поля регистрации.

Этот этап очень прост. Нужно активировать модуль Profile из группы дополнительных модулей ядра. В меню администратора появится страница /admin/user/profile, где можно создать ряд полей в анкете пользователя. Чтобы иметь возможность добавлять поля типа «дата», понадобится пакет модулей date.

У меня получился вот такой примитивный набор полей:Поля разбиты на две группы — «Контактная информация», где собраны поля подходящие для физического лица, либо представителя организации. Вторая группа полей — «Реквизиты организации» — тут мы укажем поля нужные для организаций. Также обратите внимание на специальный checkbox — profile_jurflag. Мы не будем показывать все поля анкеты без надобности. Если пользователь отмечает галочку profile_jurflag — тогда мы открываем поля с реквизитами предприятия. В случае нашей анкеты, все поля можно отметить для показа в форме регистрации. Это лишь пример, реальная анкета может содержать на много больше полей и требовать заполнить их все при регистрации не очень гуманно.

Добавляем к форме регистрации описание

Часто нужно как то морально подготовить пользователя перед заполнением формы регистрации. В drupal этот момент предусмотрен. На странице /admin/user/settings — вы найдете поле «инструкции по регистрации пользователя». В принципе, это можно реализовать и с помощью зацепки (см. далее).

Зацепка к форме регистрации и форме профиля пользователя

Следующим шагом будет необходимо реализовать зацепку form_alter к формам регистрации и профиля пользователя. Если вы пишите какой то сайт, то наверняка все зацепки и самописный код оформляете отдельным модулем. Если у вас нет такой привычки — заведите её :). Пусть это будет некий модуль — mymodule.

Все формы движка спроектированы в drupal с применением forms.API. Знакомство с этим и другими API очень полезно, если вы собираетесь иметь дело с drupal. См. — api.drupal.org.

В зацепке я собираюсь реализовать следующие операции:

  • Показывать / прятать поля организации при активации / деактивации флажка profile_jurflag.
  • Добавить пост. обработчик в форму регистрации — т.е. когда регистрация успешно прошла, я хочу выполнить какие то свои действия, например,  отправить уведомление менеджеру о новой регистрации на сайте.
  • Скрыть поле profile_jurflag из профиля пользователя — чтобы физическое лицо не переправило себя в юридическое.

Вот и все, в теории. Любопытно, возможно, посмотреть ещё код mymodule_user_register_submit

Возможно стоит упомянуть, что для вывода информации о пользователе, т.н. профиля, служит отдельных шаблон. Вы можете скопировать этот шаблон из модуля user/user-profile.tpl.php в свою тему оформления и запрограммировать его там на ваш вкус. Не забудьте при этом сбросить кеш друпала.

Мало букафф? Читайте есчо !

GPTchat пишет эссе

Май 1, 2023 г.

Ребенку задали эссе на тему "Добро вокруг меня." Сколько мы не бились, но дело не двигалось. Шли минуты, часы, но Андрей лишь вздыхал и стенал - Ах, ...

Читать

Новое лицо Lux-e.ru

Август 29, 2012 г.

Взгляните на новое "лицо" нашего интернет-журнала Lux-e.ru. Кроме нового оформления задуманы так же некоторые функциональные изменения, часть из которых ...

Читать

Как определить из скрипта, что fancybox popup уже открыт?

Декабрь 13, 2018 г.

Если пользуетесь jQuery плагином fancybox, то могли сталкиваться с тем, что необходимо увязать логику каких то других скриптов с фактом, показан ли попап ...

Читать

Форма поиска товаров на Drupal

Май 11, 2023 г.

Здесь подробно рассмотрим небольшую задачу для сайта под управлением CMS Drupal. Требуется выводить поисковую форму для товаров в виде блока. Форма ...

Читать
 

Комментарии к «Модификация формы регистрации в drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Модификация формы регистрации в drupal”

  1. Denis:

    А может подскажите еще в какую таблицу и в какие поля пишутся эти дополнительные поля формы регистрации?
    Чета как то с налету найти не получилось