You are here

function panopoly_media_update_8208 in Panopoly 8.2

Add video type block.

File

modules/panopoly/panopoly_media/panopoly_media.install, line 213
Install hooks for Panopoly Media.

Code

function panopoly_media_update_8208() {
  $new_config_entities = [
    'block_content.type.video',
    'entity_browser.browser.panopoly_media_field_video_browser',
    'field.storage.block_content.field_panopoly_media_video_video',
    'field.field.block_content.video.field_panopoly_media_video_video',
    'core.entity_form_display.block_content.video.default',
    'core.entity_view_display.block_content.video.default',
  ];

  /** @var \Drupal\Core\Config\StorageInterface $config_storage */
  $config_storage = \Drupal::service('config.storage');

  /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
  $config_manager = \Drupal::service('config.manager');

  /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
  $entity_type_manager = \Drupal::entityTypeManager();
  foreach ($new_config_entities as $config_name) {
    if ($config_storage
      ->read($config_name)) {

      // If this config already exists, skip it.
      continue;
    }
    $config_path = drupal_get_path('module', 'panopoly_media') . '/config/install';
    $source = new FileStorage($config_path);
    $config_data = $source
      ->read($config_name);
    $type = $config_manager
      ->getEntityTypeIdByName($config_name);
    $entity_storage = $entity_type_manager
      ->getStorage($type);
    if ($entity_storage instanceof ConfigEntityStorageInterface) {
      $entity = $entity_storage
        ->createFromStorageRecord($config_data);
      $entity
        ->save();
    }
  }
}