- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/event/usereventprocessor.php
- Класс: BitrixTasksInternalsCounterEventUserEventProcessor
- Вызов: UserEventProcessor::handleUpdated
private function handleUpdated(array $toUpdate, array $toDelete, $readAll): array
{
$taskIds = array_unique(array_merge($toUpdate[CounterDictionary::COUNTER_NEW_COMMENTS], $toUpdate[CounterDictionary::COUNTER_EXPIRED]));
$taskIds = array_diff($taskIds, array_keys($toDelete));
$members = $this->getTasksMembers($taskIds);
foreach ($members as $userId => $taskIds)
{
$counterController = new CounterController($userId);
if (
$userId !== $readAll
&& array_intersect($taskIds, $toUpdate[CounterDictionary::COUNTER_NEW_COMMENTS])
)
{
$counterController->recount(CounterDictionary::COUNTER_NEW_COMMENTS, $taskIds);
}
if (array_intersect($taskIds, $toUpdate[CounterDictionary::COUNTER_EXPIRED]))
{
$counterController->recount(CounterDictionary::COUNTER_EXPIRED, $taskIds);
}
}
$members = array_keys($members);
if ($readAll)
{
$members[] = $readAll;
}
return $members;
}