function media_entity_video_update_8301 in Media entity video 8.3
Update media video types to use core video source plugin and field.
File
- ./
media_entity_video.install, line 63 - Install, uninstall and update hooks for Media entity video module.
Code
function media_entity_video_update_8301() {
$config_factory = \Drupal::configFactory();
foreach ($config_factory
->listAll('media.type.') as $media_type_id) {
$config = $config_factory
->getEditable($media_type_id);
$source_id = $config
->get('source');
if ($source_id === 'video') {
$source_field_name = $config
->get('source_configuration.source_field');
$type_id = $config
->get('id');
$config
->set('source', 'video_file');
$dependencies = $config
->get('dependencies');
if (is_array($dependencies) && !empty($dependencies['module'])) {
$dependencies['module'] = array_diff($dependencies['module'], [
'media_entity_video',
]);
if (empty($dependencies['module'])) {
unset($dependencies['module']);
}
$config
->set('dependencies', $dependencies);
}
$config
->save();
foreach ($config_factory
->listAll("core.entity_view_display.media.{$type_id}.") as $view_display_name) {
$view_display_config = $config_factory
->getEditable($view_display_name);
$content = $view_display_config
->get('content');
if ($content[$source_field_name]['type'] === 'video_player_html5') {
$content[$source_field_name]['type'] = 'file_video';
$content[$source_field_name]['settings'] = [
'controls' => TRUE,
'autoplay' => FALSE,
'loop' => FALSE,
'multiple_file_display_type' => 'tags',
];
$view_display_config
->set('content', $content);
$dependencies = $view_display_config
->get('dependencies');
if (is_array($dependencies) && !empty($dependencies['module'])) {
$dependencies['module'] = array_diff($dependencies['module'], [
'media_entity_video',
]);
if (empty($dependencies['module'])) {
unset($dependencies['module']);
}
$view_display_config
->set('dependencies', $dependencies);
}
$view_display_config
->save();
}
}
}
}
}