コード例 #1
0
 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]';
 }
コード例 #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()));
         }
     }
 }