• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/group.php
  • Класс: BitrixTasksInternalsCounterGroup
  • Вызов: Group::getCounters
public function getCounters(): array
{
	$counters = [
		'EXPIRED' => 0,
		'NEW_COMMENTS' => 0
	];

	$sql = "
		SELECT 
		       GROUP_ID,
		       `TYPE`,
		       SUM(`VALUE`) as CNT
		FROM ". CounterTable::getTableName() ." 
		WHERE
			GROUP_ID = {$this->getGroupId()}
		GROUP BY GROUP_ID, `TYPE`
	";

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


	while ($row = $res->fetch())
	{
		if (in_array($row['TYPE'], CounterDictionary::MAP_EXPIRED))
		{
			$counters['EXPIRED'] += $row['CNT'];
		}

		if (in_array($row['TYPE'], CounterDictionary::MAP_COMMENTS))
		{
			$counters['NEW_COMMENTS'] += $row['CNT'];
		}
	}

	return [
		'total' => [
			'counter' => $counters['EXPIRED'] + $counters['NEW_COMMENTS'],
			'code' => '',
		],
		'expired' => [
			'counter' => $counters['EXPIRED'],
			'code' => CounterType::TYPE_EXPIRED,
		],
		'new_comments' => [
			'counter' => $counters['NEW_COMMENTS'],
			'code' => CounterType::TYPE_NEW_COMMENTS,
		],
	];
}