Отправка сообщения






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

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

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

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

$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 пользовательские поля могут быть использованы довольно широко, и являются универсальным инструментом для реализации различных задач по хранению данных. Так посредством главного модуля, мы можем получить данные пользовательских полей:

$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 так же связаны с главным модулем. Это означает что работать с группами пользователей мы можем посредством использования методов главного модуля.

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

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

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

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

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

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

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

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

Комментарии

  • Загрузка...

Наверх