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