Drupal 7: Разные профили пользователей для разных ролей

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

Итак, задача стоит следующая: на сайте www.carhelpinfo.ru есть две роли: обычный зарегистрированный пользователь и магазин.  В профиле магазина находится информация о его месторасположении (поле с Google Maps), краткое описание магазина (текстовое поле) и название магазина.

Необходимо всех регистрирующихся по умолчанию считать обычными зарегистрированными пользователями. Роль магазина присваивает администратор. 

К сожалению, я не нашел, как штатными средствами Drupal 7 сделать разные профили для разных ролей, и в форме регистрации всем подряд предлагалось указать название и описание магазина, а так же его местоположение. Помог мне в решении этой проблемы доп. модуль Profile 2

После установки этого модуля в разделе "Структура" появится пункт "Тип профиля" (см скриншот)

 

В этом разделе можно завести несколько разных профилей и определить для каждого свой набор полей. Для своей задачи я сделал "Основной профиль", где определил стандартные для всех пользователей поля, и профиль "магазин", в котором определил поля для магазинов.

Теперь, чтобы при нажатии кнопки "регистрация" пользователю предлагалось заполнить "Основной профиль", нужно лишь установить флажок "Show during user account registration.":

 

Теперь остался последний штрих. Необходимо, чтобы профиль "магазин" был только у пользователей с соответствующей ролью. Для этого просто идем в "разрешения ролей" и указываем параметры так, как нам надо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *