function oembed_providers_media_source_info_alter in oEmbed Providers 2.x
Same name and namespace in other branches
- 1.0.x oembed_providers.module \oembed_providers_media_source_info_alter()
- 1.1.x oembed_providers.module \oembed_providers_media_source_info_alter()
Implements hook_media_source_info_alter().
File
- ./
oembed_providers.module, line 14 - This module allows site builders and developers to manage oEmbed providers.
Code
function oembed_providers_media_source_info_alter(array &$sources) {
$buckets = \Drupal::service('entity_type.manager')
->getStorage('oembed_provider_bucket')
->loadMultiple();
$provider_repository = \Drupal::service('media.oembed.provider_repository');
$available_providers = [];
foreach ($provider_repository
->getAll() as $provider) {
$available_providers[] = $provider
->getName();
}
foreach ($buckets as $bucket) {
$id = 'oembed:' . $bucket
->id();
// Return providers that are 1) allowed per config and 2) exist as
// an available provider.
$providers = array_intersect($available_providers, $bucket
->get('providers'));
$sources[$id] = [
'id' => $bucket
->id(),
'label' => $bucket
->label(),
'description' => $bucket
->get('description'),
'allowed_field_types' => [
'string',
],
'default_thumbnail_filename' => 'no-thumbnail.png',
'providers' => $providers,
'class' => 'Drupal\\media\\Plugin\\media\\Source\\OEmbed',
'default_name_metadata_attribute' => 'default_name',
'thumbnail_uri_metadata_attribute' => 'thumbnail_uri',
'forms' => [
'media_library_add' => 'Drupal\\media_library\\Form\\OEmbedForm',
],
];
}
}