- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/dataloader/chat.php
- Класс: BitrixLandingDataLoaderChat
- Вызов: Chat::getUserList
protected function getUserList(array $initData): array
{
$data = [];
$userFilter = ['=ACTIVE' => 'Y'];
$chatId = $initData['CHAT_ID'];
$chatType = $initData['TYPE'];
$sendButton = [
'href' => '#',
'text' => $initData['SEND_TITLE']
];
// for private chat chat Id = user Id
if ($chatType == $this::CHAT_TYPE_PERSONAL)
{
$sendButton['href'] = '#chat' . $chatId;
$userFilter['ID'] = $chatId;
}
else if ($chatType == $this::CHAT_TYPE_GROUP)
{
$sendButton['href'] = '#join' . $chatId;
$userFilter['ID'] = BitrixLandingChatChat::getMembersId(
$chatId
);
if (!$userFilter['ID'])
{
$userFilter['ID'] = -1;
}
//{"TITLE":"Test chat 666","AVATAR":55639,"ID":24}
}
else
{
return [];
}
// select users
$res = BitrixMainUserTable::getList([
'select' => [
'ID', 'LOGIN', 'NAME', 'LAST_NAME', 'SECOND_NAME',
'WORK_POSITION', 'PERSONAL_PHOTO'
],
'filter' => $userFilter
]);
while ($user = $res->fetch())
{
if (Cache::isCaching())
{
Manager::getCacheManager()->registerTag(
'intranet_user_' . $user['ID']
);
}
$data[] = [
'ID' => $user['ID'],
'WORK_POSITION' => htmlspecialcharsbx($user['WORK_POSITION']),
'NAME' => $name = htmlspecialcharsbx(CUser::formatName(
CSite::getNameFormat(),
$user, true, false
)),
'AVATAR' => [
'src' => CIMChat::getAvatarImage($user['PERSONAL_PHOTO']),
'alt' => $name
],
'SEND' => $sendButton
];
}
return $data;
}