• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/push/groupsender.php
  • Класс: BitrixTasksInternalsCounterPushGroupSender
  • Вызов: GroupSender::clearRedundantGroupEvents
private function clearRedundantGroupEvents(array $groupedByGroup): array
{
	$projectMovingEvents = [
		EventDictionary::EVENT_AFTER_TASK_ADD,
		EventDictionary::EVENT_AFTER_COMMENT_ADD,
	];
	foreach ($groupedByGroup as $groupId => $events)
	{
		if (count($events) <= 1)
		{
			continue;
		}

		$eventsWithoutUsers = $this->getEventsWithoutUsers($events);
		if (count($eventsWithoutUsers) <= 0)
		{
			$groupedByUser = $this->getGroupedByUser($events);
			$groupedByGroup[$groupId] = $this->clearRedundantUserEvents($groupedByUser);
		}
		else
		{
			foreach ($eventsWithoutUsers as $event)
			{
				if (in_array($event['EVENT'], $projectMovingEvents, true))
				{
					$groupedByGroup[$groupId] = [$event];
					continue 2;
				}
			}
			$groupedByGroup[$groupId] = [current($eventsWithoutUsers)];
		}
	}

	return $groupedByGroup;
}