/** * @param int|array $fileID * @param int $storageTypeID * @return array|null */ public static function makeFileArray($fileID, $storageTypeID) { if (!is_integer($storageTypeID)) { $storageTypeID = (int) $storageTypeID; } if ($storageTypeID === StorageType::Disk) { if (!is_array($fileID)) { return DiskManager::makeFileArray($fileID); } $result = array(); foreach ($fileID as $ID) { $ary = DiskManager::makeFileArray($ID); if (is_array($ary)) { $result[] = $ary; } } return $result; } elseif ($storageTypeID === StorageType::WebDav) { if (!is_array($fileID)) { return \CCrmWebDavHelper::makeElementFileArray($fileID); } $result = array(); foreach ($fileID as $ID) { $ary = \CCrmWebDavHelper::makeElementFileArray($ID); if (is_array($ary)) { $result[] = $ary; } } return $result; } elseif ($storageTypeID === StorageType::File) { if (!is_array($fileID)) { return \CFile::makeFileArray($fileID); } $result = array(); foreach ($fileID as $ID) { $ary = \CFile::makeFileArray($ID); if (is_array($ary)) { $result[] = $ary; } } return $result; } throw new Main\NotSupportedException("Storage type: '{$storageTypeID}' is not supported in current context"); }