- Модуль: 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;
}