public static function getUrlAttachedFileElement($elementId, $objectId) { if (!(int) $elementId || !(int) $objectId) { return ''; } $userFieldManager = Driver::getInstance()->getUserFieldManager(); list($connectorClass, $moduleId) = $userFieldManager->getConnectorDataByEntityType("iblock_element"); $attachedModel = AttachedObject::load(array('OBJECT_ID' => $objectId, '=ENTITY_TYPE' => $connectorClass, '=ENTITY_ID' => $elementId, '=MODULE_ID' => $moduleId)); if (!$attachedModel) { return ''; } $file = $attachedModel->getFile(); if (!$file) { return ''; } $driver = Driver::getInstance(); $urlManager = $driver->getUrlManager(); return '[url=' . $urlManager->getUrlUfController('download', array('attachedId' => $attachedModel->getId())) . ']' . htmlspecialcharsbx($file->getName()) . '[/url]'; }
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())); } } }