- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/tasks/task.php
- Класс: BitrixSocialnetworkIntegrationTasksTask
- Вызов: Task::onTaskUserOptionChanged
static function onTaskUserOptionChanged(Event $event): EventResult
{
$result = new EventResult(
EventResult::UNDEFINED,
[],
'socialnetwork'
);
$taskId = (int)$event->getParameter('taskId');
$userId = (int)$event->getParameter('userId');
$option = (int)$event->getParameter('option');
$added = $event->getParameter('added');
if (
$taskId <= 0
|| $userId <= 0
|| $option !== BitrixTasksInternalsUserOptionOption::MUTED
|| !Loader::includeModule('tasks')
)
{
return $result;
}
$logId = 0;
$provider = new BitrixSocialnetworkLivefeedTasksTask();
$res = LogTable::getList([
'filter' => [
'@EVENT_ID' => $provider->getEventId(),
'=SOURCE_ID' => $taskId
],
'select' => [ 'ID' ]
]);
if ($logFields = $res->fetch())
{
$logId = (int)$logFields['ID'];
}
if ($logId <= 0)
{
return $result;
}
$followDate = false;
if (!$added)
{
CSocNetLogFollow::delete($userId, 'L'.$logId);
$followDate = ConvertTimeStamp(time() + CTimeZone::getOffset(), 'FULL', SITE_ID); // compromise, we cannot get it from $logFields because it can have not updated value yet
}
CSocNetLogFollow::set($userId, 'L'.$logId, ($added ? 'N' : 'Y'), $followDate);
return new EventResult(
EventResult::SUCCESS,
[],
'socialnetwork'
);
}