public function MediaHelper::getFileExtensions in Varbase Media 8.5
Same name and namespace in other branches
- 8.7 modules/entity_browser_generic_embed/src/MediaHelper.php \Drupal\entity_browser_generic_embed\MediaHelper::getFileExtensions()
- 8.6 modules/entity_browser_generic_embed/src/MediaHelper.php \Drupal\entity_browser_generic_embed\MediaHelper::getFileExtensions()
- 9.0.x modules/entity_browser_generic_embed/src/MediaHelper.php \Drupal\entity_browser_generic_embed\MediaHelper::getFileExtensions()
Returns all file extensions accepted by bundles that use file fields.
Parameters
bool $check_access: (optional) Whether to filter the bundles by create access for the current user. Defaults to FALSE.
string[] $bundles: (optional) An array of bundle IDs from which to retrieve source field extensions. If omitted, all available bundles are allowed.
Return value
string[] The file extensions accepted by all available bundles.
File
- modules/
entity_browser_generic_embed/ src/ MediaHelper.php, line 46
Class
- MediaHelper
- Provides helper methods for dealing with media entities.
Namespace
Drupal\entity_browser_generic_embedCode
public function getFileExtensions($check_access = FALSE, array $bundles = []) {
$extensions = '';
// entity_browser_generic_embed overrides the media_bundle storage handler with a special
// one that adds an optional second parameter to loadMultiple().
$storage = $this->entityTypeManager
->getStorage('media_type');
$media_types = $storage
->loadMultiple($bundles ?: NULL, $check_access);
/** @var \Drupal\media\MediaTypeInterface $media_type */
foreach ($media_types as $media_type) {
$field = $media_type
->getSource()
->getSourceFieldDefinition($media_type);
// If the field is a FileItem or any of its descendants, we can consider
// it a file field. This will automatically include things like image
// fields, which extend file fields.
if (is_a($field
->getItemDefinition()
->getClass(), FileItem::class, TRUE)) {
$extensions .= $field
->getSetting('file_extensions') . ' ';
}
}
$extensions = preg_split('/,?\\s+/', rtrim($extensions));
return array_unique($extensions);
}