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