public static function onDelete($userField, $value) { list($type, $realValue) = self::detectType($value); if ($type != self::TYPE_ALREADY_ATTACHED) { return; } $attachedModel = AttachedObject::loadById($realValue); if (!$attachedModel) { return; } $userFieldManager = Driver::getInstance()->getUserFieldManager(); if (!$userFieldManager->belongsToEntity($attachedModel, $userField['ENTITY_ID'], $userField['ENTITY_VALUE_ID'])) { return; } AttachedObject::detachByFilter(array('ID' => $realValue)); }
public static function clearValueMultiple(FieldType $fieldType, $values) { if (!Loader::includeModule('disk')) { return; } if (!is_array($values)) { $values = array($values); } $userFieldManager = \Bitrix\Disk\Driver::getInstance()->getUserFieldManager(); list($connectorClass, $moduleId) = $userFieldManager->getConnectorDataByEntityType('lists_workflow'); $documentType = $fieldType->getDocumentType(); $iblockId = intval(substr($documentType[2], strlen("iblock_"))); if (!$iblockId) { return; } foreach ($values as $value) { $attachedModel = \Bitrix\Disk\AttachedObject::load(array('OBJECT_ID' => $value, '=ENTITY_TYPE' => $connectorClass, '=ENTITY_ID' => $iblockId, '=MODULE_ID' => $moduleId)); if (!$attachedModel) { continue; } if ($userFieldManager->belongsToEntity($attachedModel, "lists_workflow", $iblockId)) { \Bitrix\Disk\AttachedObject::detachByFilter(array('ID' => $attachedModel->getId())); } } }
public static function deleteAllAttachedFiles($entityId) { $userFieldManager = Driver::getInstance()->getUserFieldManager(); list($connectorClass, $moduleId) = $userFieldManager->getConnectorDataByEntityType("iblock_element"); AttachedObject::detachByFilter(array('=ENTITY_ID' => $entityId, "=ENTITY_TYPE" => $connectorClass, "=MODULE_ID" => $moduleId)); }
public static function clearValueSingle(FieldType $fieldType, $value) { if (!Loader::includeModule('disk')) { return; } $value = (int) $value; if (!$value) { return; } $documentType = $fieldType->getDocumentType(); $iblockId = intval(substr($documentType[2], strlen("iblock_"))); if (!$iblockId) { return; } $userFieldManager = \Bitrix\Disk\Driver::getInstance()->getUserFieldManager(); list($type, $realId) = \Bitrix\Disk\Uf\FileUserType::detectType($value); if ($type == \Bitrix\Disk\Uf\FileUserType::TYPE_ALREADY_ATTACHED) { $attachedModel = \Bitrix\Disk\AttachedObject::loadById($realId); if (!$attachedModel) { return; } if ($userFieldManager->belongsToEntity($attachedModel, "iblock_workflow", $iblockId)) { \Bitrix\Disk\AttachedObject::detachByFilter(array('ID' => $realId)); } } }