• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/CounterService.php
  • Класс: BitrixImV2MessageCounterService
  • Вызов: CounterService::countUnreadMessages
protected function countUnreadMessages(?array $chatIds = null): void
{
	$counters = $this->getCountersForEachChat($chatIds);

	foreach ($counters as $counter)
	{
		$chatId = (int)$counter['CHAT_ID'];
		$count = (int)$counter['COUNT'];
		if ($counter['IS_MUTED'] === 'Y')
		{
			$this->setFromMutedChat($chatId, $count);
		}
		else if ($counter['CHAT_TYPE'] === IM_MESSAGE_SYSTEM)
		{
			$this->setFromNotify($count);
		}
		else if ($counter['CHAT_TYPE'] === IM_MESSAGE_OPEN_LINE)
		{
			$this->setFromLine($chatId, $count);
		}
		else
		{
			$this->setFromChat($chatId, $count);
		}
		$this->countersByChatIds[$chatId] = $count;
	}
}