• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Integration/UI/EntitySelector/RecentProvider.php
  • Класс: BitrixImV2IntegrationUIEntitySelectorRecentProvider
  • Вызов: RecentProvider::fillItems
private function fillItems(array $items): void
{
	$userIds = [];
	$chats = [];
	foreach ($items as $item)
	{
		$id = $item->getCustomData()->get('id');
		if ($item->getEntityType() === self::ENTITY_TYPE_USER)
		{
			$userIds[] = $id;
		}
		else
		{
			$chats[$id] = Chat::getInstance($id);
		}
	}
	$users = new UserCollection($userIds);
	$users->fillOnlineData();
	Chat::fillRole($chats);
	foreach ($items as $item)
	{
		$customData = $item->getCustomData()->getValues();
		if ($item->getEntityType() === self::ENTITY_TYPE_USER)
		{
			$user = $users->getById($customData['id']);
			$customData = array_merge($customData, $user->toRestFormat());
			$item->setTitle($user->getName())->setAvatar($user->getAvatar())->setCustomData($customData);
		}
		if ($item->getEntityType() === self::ENTITY_TYPE_CHAT)
		{
			$chat = $chats[$customData['id']] ?? null;
			if ($chat === null)
			{
				continue;
			}
			$customData = array_merge($customData, $chat->toRestFormat(['CHAT_SHORT_FORMAT' => true]));
			$item->setTitle($chat->getTitle())->setAvatar($chat->getAvatar())->setCustomData($customData);
		}
	}
}