- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/trackedobjectmanager.php
- Класс: BitrixDiskTrackedObjectManager
- Вызов: TrackedObjectManager::processPush
protected function processPush($user, File $object, AttachedObject $attachedObject = null): bool
{
$userId = User::resolveUserId($user);
if (!$userId)
{
return false;
}
if (!DiskDocumentDocumentHandler::isEditable($object->getExtension()))
{
return false;
}
$alreadyExists = DiskInternalsTrackedObjectTable::query()
->setSelect(['ID'])
->where('USER_ID', $userId)
->where('REAL_OBJECT_ID', $object->getRealObjectId())
->fetch()
;
if (!empty($alreadyExists['ID']))
{
$this->refresh($object);
}
else
{
DiskInternalsTrackedObjectTable::add([
'USER_ID' => $userId,
'OBJECT_ID' => $object->getId(),
'REAL_OBJECT_ID' => $object->getRealObjectId(),
'ATTACHED_OBJECT_ID' => $attachedObject? $attachedObject->getId() : null,
]);
}
return true;
}