You are here

function varbase_media_update_8706 in Varbase Media 8.7

Same name and namespace in other branches
  1. 9.0.x varbase_media.install \varbase_media_update_8706()

Follow up #3115391: Update all remote videos, set oembed view mode type.

1 call to varbase_media_update_8706()
varbase_media_update_8707 in ./varbase_media.install
Issue #3125946: Fix missing varbase media entity presave hook.

File

./varbase_media.install, line 376
Contains install and update for Varbase Media module.

Code

function varbase_media_update_8706() {

  // When the Remote Video media type is active.
  $media_bundle_ids = \Drupal::service('entity_type.bundle.info')
    ->getBundleInfo('media');
  if (isset($media_bundle_ids) && is_array($media_bundle_ids) && count($media_bundle_ids) > 0 && isset($media_bundle_ids['remote_video'])) {
    $storage = \Drupal::entityTypeManager()
      ->getStorage('entity_view_display');
    $media_view_modes = \Drupal::service('entity_display.repository')
      ->getViewModes('media');
    if (isset($media_view_modes) && is_array($media_view_modes) && count($media_view_modes) > 0) {
      $media_view_modes['default'] = 'default';
      $media_view_modes = array_keys($media_view_modes);
      foreach ($media_view_modes as $key) {
        $view_display = $storage
          ->load('media.remote_video.' . $key);
        if (isset($view_display)) {
          $config = $view_display
            ->getComponent('field_media_oembed_video');
          if (isset($config['type']) && $config['type'] == 'oembed') {
            $config['type'] = 'varbase_oembed';
            $view_display
              ->setComponent('field_media_oembed_video', $config);
            $view_display
              ->save();
          }
        }
      }
    }
  }
}