• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/collector/usercollector.php
  • Класс: BitrixTasksInternalsCounterCollectorUserCollector
  • Вызов: UserCollector::getUnReadForumMessageByFilter
public function getUnReadForumMessageByFilter($filter): array
{
	$statement = [
		'join' => $this->getJoinForRecountComments(),
		'filter' => array_merge(
			[
				$this->getTasksFilter($filter['id'])
			],
			$this->getConditionForRecountComments()
		),
	];

	$join = implode(' ', $statement['join']);
	$filter = implode(' AND ', $statement['filter']);

	$sql = "
		SELECT
			DISTINCT FM.ID, TM.TYPE
		FROM b_tasks T
			{$join}
		WHERE
			{$filter}
	";

	$res = Application::getConnection()->query($sql);
	$rows = $res->fetchAll();

	$list = static::findTaskAllowedForMemberTypeOriginator($rows);

	$inx = [];
	foreach ($list as $item)
	{
		$inx[] = $item['ID'];
	}

	$inx = array_unique($inx);

	return $inx;
}