О web-разработке
и даже немного больше...

Работа с пользователями и пользовательскими полями в Bitrix D7

Этот пост является дополнением статьи по работе с главным модулем в Bitrix D7. Главный модуль включает в себя множество базовых механизмов обеспечивающих работу системы. В его функционал так же входят пользователи, пользовательские поля, и группы пользователей.

Получение полей пользователя в D7

Как мы знаем в системе Bitrix механизм авторизации и работы с пользователями идёт вместе с основным модулем. Поэтому, используя классы главного модуля мы так же можем получить данные полей для пользователя:

1
2
3
4
5
6
7
$dbUser = \Bitrix\Main\UserTable::getList(array(
            'select' => array('ID', 'NAME', 'PERSONAL_PHOTO', 'PERSONAL_WWW'),
            'filter' => array('ID' => $USER->GetID())
        ));
if ($arUser = $dbUser->fetch()){
    var_dump($arUser);
}

В результате, используя метод getList() мы получаем поля текущего авторизованного пользователя (согласно установленному фильтру в параметрах вызова метода).

Получение пользовательских полей в D7

В системе Bitrix пользовательские поля могут быть использованы довольно широко, и являются универсальным инструментом для реализации различных задач по хранению данных. Так посредством главного модуля, мы можем получить данные пользовательских полей:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
$dbUserFields = \Bitrix\Main\UserFieldTable::getList(array(
                'filter' => array('ENTITY_ID' => 'IBLOCK_'.$IBLOCK_ID.'_SECTION')
            ));
 
while ($arUserField = $dbUserFields->fetch()) {
    if ($arUserField["USER_TYPE_ID"] == 'enumeration') {
        $dbEnums = CUserFieldEnum::GetList(
                        array(),
                        array('USER_FIELD_ID' => $arUserField['ID'])
                    );
        while ($arEnum = $dbEnums->GetNext()) {
            $arUserField['ENUMS'][$arEnum['XML_ID']] = $arEnum;
        }
    }
    $arResult['USER_FIELDS'][$arUserField["FIELD_NAME"]] = $arUserField;
}

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

Работа с группами пользователей в D7

Группы пользователей, как и сами пользователи в системе Bitrix так же связаны с главным модулем. Это означает что работать с группами пользователей мы можем посредством использования методов главного модуля.

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

1
2
3
4
5
$dbGroup = \Bitrix\Main\UserGroupTable::getList(array(
    'filter' => array("USER_ID" => 90)
));
$arGroups = $dbGroup->FetchAll();
echo '<pre>'; print_r($arGroups); echo '</pre>';

Добавление пользователя в определённую группу

1
2
3
4
\Bitrix\Main\UserGroupTable::add(array(
            "USER_ID" => $USER_ID,
            "GROUP_ID" => 10,
        ));

Удаление пользователей из группы

1
2
3
4
\Bitrix\Main\UserGroupTable::delete(array(      
        "USER_ID" => $USER_ID,
        "GROUP_ID" => 10,
    ));
Опубликован: 10.04.2020 г.

См. также:

«Не удалось установить соединение с сервером. Проверьте …».
Получение Email-адреса покупателя в заказе (Bitrix D7)
Работа с URL-адресами в Bitrix D7
Работа с купонами в Bitrix API
Добавляем пункт меню для списков в админке Битрикс
Диалоговые окна в Bitrix API
Создание инфоблока при установке модуля
Создание копии корзины из заказа на Bitrix D7

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

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