- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/push/groupsender.php
- Класс: BitrixTasksInternalsCounterPushGroupSender
- Вызов: GroupSender::sendPersonalPush
private function sendPersonalPush(array $pushList): void
{
if (!Loader::includeModule('socialnetwork'))
{
return;
}
$groupIds = [];
$owners = [];
foreach ($pushList as $push)
{
if (!in_array($push['EVENT'], [
EventDictionary::EVENT_PROJECT_DELETE,
EventDictionary::EVENT_PROJECT_PERM_UPDATE,
EventDictionary::EVENT_AFTER_TASK_ADD,
EventDictionary::EVENT_AFTER_TASK_RESTORE,
EventDictionary::EVENT_AFTER_TASK_UPDATE,
EventDictionary::EVENT_TASK_EXPIRED,
EventDictionary::EVENT_AFTER_TASK_MUTE
]))
{
continue;
}
if (
$push['EVENT'] === EventDictionary::EVENT_AFTER_PROJECT_READ_ALL
|| $push['EVENT'] === EventDictionary::EVENT_AFTER_SCRUM_READ_ALL
)
{
$owners[] = $push['USER_ID'];
}
if (!$push['GROUP_ID'])
{
continue;
}
$groupIds[] = $push['GROUP_ID'];
}
$groupIds = array_unique($groupIds);
if (empty($groupIds))
{
return;
}
$owners = array_unique(array_merge($owners, $this->getProjectsOwners($groupIds)));
foreach ($owners as $userId)
{
CounterState::reload($userId);
}
(new PushSender())->sendUserCounters($owners);
}