• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/components/kanban/services/members.php
  • Класс: BitrixTasksComponentsKanbanServicesMembers
  • Вызов: Members::getByIds
public function getByIds(array $memberIds): array
{
	$result = [];
	$memberIds = array_unique($memberIds);
	// read from cache
	foreach ($memberIds as $arKey => $memberId)
	{
		if (isset($this->cache[$memberId]))
		{
			$result[$memberId] = $this->cache[$memberId];
			unset($memberIds[$arKey]);
		}
	}

	if (empty($memberIds))
	{
		return $result;
	}

	// read from database
	$select = [
		'ID',
		'PERSONAL_PHOTO',
		'NAME',
		'LAST_NAME',
		'SECOND_NAME',
		'EXTERNAL_AUTH_ID',
		self::USER_DEPARTMENT_CODE,
	];
	if (Loader::includeModule('crm'))
	{
		$select[] = self::USER_CRM_CODE;
	}
	$res = BitrixMainUserTable::getList(array(
		'select' => $select,
		'filter' => array(
			'ID' => $memberIds
		)
	));
	while ($row = $res->fetch())
	{
		if ($row['PERSONAL_PHOTO'])
		{
			$row['PERSONAL_PHOTO'] = CFile::ResizeImageGet(
				$row['PERSONAL_PHOTO'],
				$this->avatarSize,
				BX_RESIZE_IMAGE_EXACT
			);
		}
		$row['USER_NAME'] = CUser::FormatName($this->nameTemplate, $row, true, false);
		$member = [
			'id' => $row['ID'],
			'photo' => $row['PERSONAL_PHOTO'],
			'name' => $row['USER_NAME'],
			'crm' => false,
			'mail' => false,
			'extranet' => false,
			'url' => "/company/personal/user/{$row['ID']}/",
		];
		if (isset($row[self::USER_CRM_CODE]) && $row[self::USER_CRM_CODE])
		{
			$member['crm'] = true;
		}
		elseif ($row['EXTERNAL_AUTH_ID'] == self::USER_TYPE_MAIL)
		{
			$member['mail'] = true;
		}
		elseif (!isset($row[self::USER_DEPARTMENT_CODE][0]) || !$row[self::USER_DEPARTMENT_CODE][0])
		{
			$member['extranet'] = true;
		}
		$result[$member['id']] = $member;
		$this->cache[$member['id']] = $member;
	}

	return $result;
}