- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/task.php
- Класс: Bitrix\Crm\Activity\Provider\Task
- Вызов: Task::createLiveFeedLog
static function createLiveFeedLog($entityId, array $activity, array &$logFields)
{
$entityId = (int) $entityId;
$activityId = isset($activity['ID']) ? (int)$activity['ID'] : 0;
if ($entityId <= 0 || !Loader::includeModule('tasks') || !Loader::includeModule('socialnetwork'))
{
return false;
}
$eventId = 0;
$dbTask = \CTasks::getByID($entityId, false);
if ($task = $dbTask->fetch())
{
$ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->getUserFieldValue("TASKS_TASK", "UF_TASK_WEBDAV_FILES", $task["ID"], LANGUAGE_ID);
if ($ufDocID)
{
$logFields["UF_SONET_LOG_DOC"] = $ufDocID;
}
}
if ($task)
{
$rsLog = \CSocNetLog::getList(
array(),
array(
"EVENT_ID" => "tasks",
"SOURCE_ID" => $task["ID"]
),
array("ID")
);
if ($arLog = $rsLog->fetch())
{
$eventId = (int)\CCrmLiveFeed::convertTasksLogEvent(array(
"LOG_ID" => $arLog["ID"],
"ACTIVITY_ID" => $activityId,
"PARENTS" => (!empty($logFields['PARENTS']) ? $logFields['PARENTS'] : array())
));
}
elseif (!empty($task['GROUP_ID']))
{
$arSite = array();
$rsGroupSite = \CSocNetGroup::getSite(intval($task['GROUP_ID']));
if ($rsGroupSite)
{
while($arGroupSite = $rsGroupSite->fetch())
{
$arSite[] = $arGroupSite["LID"];
}
}
if (!empty($arSite))
{
$logFields['SITE_ID'] = $arSite;
}
}
}
if ($eventId === 0)
{
if ($task['CREATED_BY'] > 0)
{
$logFields['USER_ID'] = $task['CREATED_BY'];
}
$eventId = \CCrmLiveFeed::createLogEvent($logFields, \CCrmLiveFeedEvent::Add, array('ACTIVITY_PROVIDER_ID' => self::getId()));
}
if ($task && $eventId > 0)
{
$arTaskParticipant = \CTaskNotifications::getRecipientsIDs($task, false);// don't exclude current user
$arSocnetRights = \CTaskNotifications::__userIDs2Rights($arTaskParticipant);
if (
isset($task['GROUP_ID'])
&& intval($task['GROUP_ID']) > 0
)
{
$arSocnetRights = array_merge(
$arSocnetRights,
array('SG'.$task['GROUP_ID'])
);
}
\CSocNetLogRights::DeleteByLogID($eventId);
\CSocNetLogRights::Add($eventId, $arSocnetRights);
}
return $eventId;
}