- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/forum/task/usertopic.php
- Класс: BitrixTasksIntegrationForumTaskUserTopic
- Вызов: UserTopic::updateLastVisit
static function updateLastVisit(int $taskId, int $userId, DateTime $lastVisit = null): void
{
$task = CTaskItem::getInstance($taskId, $userId);
if (!static::includeModule() || !$task->checkCanRead())
{
return;
}
$lastVisit = ($lastVisit ?? new DateTime());
try
{
$taskData = $task->getData(false, [], false);
}
catch (TasksException $e)
{
return;
}
if (!$taskData['FORUM_TOPIC_ID'])
{
return;
}
$primary = [
'TOPIC_ID' => $taskData['FORUM_TOPIC_ID'],
'USER_ID' => $userId
];
$fields = [
'FORUM_ID' => Comment::getForumId(),
'LAST_VISIT' => $lastVisit
];
if (UserTopicTable::getById($primary)->fetch())
{
UserTopicTable::update($primary, $fields);
}
else
{
UserTopicTable::add($primary + $fields);
}
}