Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 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()));
         }
     }
 }
Exemplo n.º 3
0
 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));
         }
     }
 }