- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/comments/viewed/task.php
- Класс: BitrixTasksCommentsViewedTask
- Вызов: Task::readAll
public function readAll($groupId = null, $userId = null, string $role = null): bool
{
$currentUserId = (int)CurrentUser::get()->getId();
$groupId = (int)$groupId;
$groupCondition = '';
if ($groupId)
{
$groupCondition = "AND TS.GROUP_ID = {$groupId}";
}
$userJoin = "INNER JOIN b_tasks_member TM ON TM.TASK_ID = T.ID AND TM.USER_ID = {$currentUserId}";
$memberRole = null;
if (
$role
&& array_key_exists($role, Role::ROLE_MAP)
)
{
$memberRole = Role::ROLE_MAP[$role];
}
if ($memberRole)
{
$userJoin .= " AND TM.TYPE = '". $memberRole ."'";
}
$this->markAsRead($currentUserId, $userJoin, $groupCondition);
CounterService::addEvent(
EventDictionary::EVENT_AFTER_COMMENTS_READ_ALL,
[
'USER_ID' => $currentUserId,
'GROUP_ID' => $groupId,
'ROLE' => $memberRole
]
);
PushService::addEvent($currentUserId, [
'module_id' => 'tasks',
'command' => PushCommand::COMMENTS_VIEWED,
'params' => [
'USER_ID' => $currentUserId,
'GROUP_ID' => $groupId,
'ROLE' => $role,
]
]);
return true;
}