Модификация формы регистрации в 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 в свою тему оформления и запрограммировать его там на ваш вкус. Не забудьте при этом сбросить кеш друпала.

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

Очистка кеша локальной таблицы DNS в Windows

Август 25, 2019 г.

Все время забывают полезную консольную команду лля Винды, когда требуется почистить кеш DNS на машине. Вызывается через утилиту ipconfig: [crayon-69864b77313f3483481703/] Бывает полезно, если ip адрес уже сменился, а локально у вас он берется ...

Читать

Вывод размеров таблиц в Mb, используя information_schema

Май 10, 2019 г.

Если вы пользуетесь phpMyAdmin или похожим менеджером баз данных, то привыкли видеть размеры таблиц в списке. Порою, нет возможности установить дополнительные инструменты на сервер, но это не страшно, т.к. требуемую информацию получить не сложно. ...

Читать

Набор номера на смартфоне при нажатии на номер телефона на сайте

Сентябрь 10, 2015 г.

Мне казалось, что это естественная фича сотовых, когда тыкаешь в какое то число на странице сайта в мобильном браузере - он пытается с ним что то делать, предлагая свои обычные варианты - послать СМС или позвонить. Оказалось, что это не совсем ...

Читать

Добавление пунктов меню в Administration menu (admin_menu)

Апрель 8, 2020 г.

Популярный административный модуль admin_menu, собирает всё самое нужное и важное для управления сайтом. И хотя в 7 версии в ядре вы найдете модуль tool, обладающий похожим функционалом, ему не удалось заменить admin_menu. Далее, разберем код, добавляющий ...

Читать
 

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

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



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

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

  1. Denis:

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