Настраиваем и используем модуль profile2, Drupal 7

Поговорим о модуле profile2, Drupal 7.

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

Установка

Страница проекта модуля — drupal.org/project/profile2. Качаем последнюю версию, добавляем в свой проект (например, в sites/all/modules/). Я также устанавливаю модуль profile2_regpath, чтобы получить отдельные страницы регистрации.

На странице модулей drupal мы получаем примерно такую картинку:

profile2-modules

Настройка

Настройки есть только у модуля Profile2, где мы создаём и настраиваем типы профилей [admin/structure/profiles]. Я создал целых три профиля — для организации (organization), частного лица (private person) и ИП (self-employed). У каждого свой набор полей.

profile2-cusrom-profiles

Рассмотрим подробно настройки профилей, т.к. именно от них зависит будет ли у нас раздельными страницы регистрации, редактирования и т.п.

profile2-label

Название и машинное имя. От последнего будут зависеть генерируемые пути к страницам отображения и редактирования профилей. В данном примере пути просмотра и редактирования будут выглядеть так:

profile-org/1/view — просмотр (view) профиля организации (org) пользователя с user_id = 1
profile-org/1/edit — редактирование (edit) профиля организации (org) пользователя с user_id = 1

Пара чекбоксов позволяет сделать общие настройки профиля.

profile2-checks

Первый из них решает показывать ли поля данного профиля на всех формах регистрации (что то вроде общего для всех профиля), второй чекбокс позволяет выделить редактирование и просмотр полей данного типа профиля на отдельные страницы, убирая их с базовой страницы профиля (как в примерах выше — profile-org/1/view  и profile-org/1/edit).

Включаем опции модуля Profile2 registration path.

profile2-regpath-settings

Галочка разворачивает целый набор настроек. Большинство из них не требует пояснения — это настаиваемые заголовки страниц, текст сообщения о регистрации и т.п.

Здесь же настраивается путь к форме регистрации данного типа профиля.

profile2-regpath-path

А также можно подключить роль данного пользователя после регистрации, т.е. связать тип профиля и роли пользователей на сайте.

profile2-regpath-assign-role

У меня была только одна роль — администратор, она и показана в «списке». Советую для каждого профиля создать и ассоциировать свою роль [admin/people/permissions/roles]. Тогда можно будет ограничить редактирование профилей только тем профилем, редактирование которого разрешено в настройках выбранной роли пользователя. Т.е. настройки разрешений [admin/people/permissions] могут выглядеть вот так

profile2-permissions

Здесь каждая из ролей позволяет редактировать и просматривать только свой профиль и только того типа, который ассоциирован с данной ролью.

Немного программирования

Замечательно, что у нас есть отдельные страницы с просмотром и редактированием профиля. Но иногда надо вставить эти страницы либо как часть своей страницы, либо используя блок (block). Вот пример в нескольких строках кода, который вам поможет решать такую задачу.

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

Получить имя текущей темы по дефолту в Drupal

Январь 21, 2019 г.

Theme API к сожалению не даёт прямого метода, чтобы прочитать это значение. Как его получить? Иногда программно нужно установить, что именно видит пользователь на фронт-енд (какую тему использует движок). Необходимость возникает из-за того, ...

Читать

Подключаем fancybox в Drupal 6

Сентябрь 1, 2013 г.

Fancybox - известный плагин jQuery для создания эффекта "просмотра в окошке". Давайте подключим его в 6-ю версию Drupal. Ряд "деятелей" предлагают поставить для этой цели, кроме самой библиотеки, ещё два плагина - jquery_update и fancybox. Определенный ...

Читать

Программно меняем url alias в Drupal 7

Март 9, 2017 г.

Чтобы программно изменить/задать ЧПУ публикации (или другого объекта) в Drupal, нужно определить три параметра - системный адрес объекта, новый псевдоним и код языка. К примеру, для объекта node код может быть следующим: [crayon-6a06a0d57d6dd680685962/] ...

Читать

Подготовка строки для использования в качестве имени html класса

Январь 18, 2022 г.

То, что в семерке выполняется функцией drupal_html_class(), в Drupal 8 реализовано в виде статического метода\Drupal\Component\Utility\Html::getClass($str). Данная функция также востребована в шаблонах (twig). Здесь вы можете использовать фильтр ...

Читать
 

Комментарии к «Настраиваем и используем модуль profile2, Drupal 7»

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



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