You are here

protected function ContentModelUpdater::updateEntityBrowsers in Panopoly 8.2

Switch entity browsers to utilize new types.

1 call to ContentModelUpdater::updateEntityBrowsers()
ContentModelUpdater::installConfig in modules/panopoly/panopoly_media/src/Update/ContentModelUpdater.php
Install config.

File

modules/panopoly/panopoly_media/src/Update/ContentModelUpdater.php, line 817

Class

ContentModelUpdater
Applies changes to media content model from schema versions 8204 to 8205.

Namespace

Drupal\panopoly_media\Update

Code

protected function updateEntityBrowsers() {
  if ($b = EntityBrowser::load('panopoly_media_field_media_browser')) {
    $displayConfiguration = $b
      ->get('display_configuration');
    $displayConfiguration['height'] = '';
    $displayConfiguration['width'] = '';
    $displayConfiguration['link_text'] = 'Browse media';
    $b
      ->set('display_configuration', $displayConfiguration);

    /** @var \Drupal\entity_browser\WidgetsLazyPluginCollection $widgets */
    $widgets = $b
      ->getWidgets();
    if ($widgets
      ->has('a36a243c-e298-4b28-9eb2-4a9976879176')) {

      /** @var \Drupal\entity_browser\WidgetInterface $widget */
      $widget = $widgets
        ->get('a36a243c-e298-4b28-9eb2-4a9976879176');
      $widget
        ->setWeight(-7);
      $config = $widget
        ->getConfiguration();
      $config['settings']['media_type'] = 'panopoly_media_image';
      $widget
        ->setConfiguration($config);
    }
    if ($widgets
      ->has('ee8606e5-1b38-4c5d-9cc3-e71ae053cb4e')) {

      /** @var \Drupal\entity_browser\WidgetInterface $widget */
      $widget = $widgets
        ->get('ee8606e5-1b38-4c5d-9cc3-e71ae053cb4e');
      $widget
        ->setWeight(-8);
      $config = $widget
        ->getConfiguration();
      $config['settings']['media_type'] = 'panopoly_media_file';
      $widget
        ->setConfiguration($config);
    }
    $config = [
      'id' => 'entity_form',
      'label' => 'Add remote video',
      'settings' => [
        'bundle' => 'panopoly_media_remote_video',
        'entity_type' => 'media',
        'form_mode' => 'entity_browser',
        'submit_text' => 'Select',
      ],
      'uuid' => '15474089-1e4d-48bb-8917-4af94990132a',
      'weight' => 5,
    ];
    $widgets
      ->addInstanceId('15474089-1e4d-48bb-8917-4af94990132a', $config);
    $b
      ->save();
  }
  if ($b = EntityBrowser::load('panopoly_media_wysiwyg_media_browser')) {

    /** @var \Drupal\entity_browser\WidgetsLazyPluginCollection $widgets */
    $widgets = $b
      ->getWidgets();
    if ($widgets
      ->has('5864d273-3a0b-4019-b5e2-257bb6faa387')) {

      /** @var \Drupal\entity_browser\WidgetInterface $widget */
      $widget = $widgets
        ->get('5864d273-3a0b-4019-b5e2-257bb6faa387');
      $widget
        ->setWeight(-7);
      $config = $widget
        ->getConfiguration();
      $config['settings']['media_type'] = 'panopoly_media_image';
      $widget
        ->setConfiguration($config);
    }
    if ($widgets
      ->has('a9609bc6-0d7d-47ca-84f1-62e76c37372a')) {

      /** @var \Drupal\entity_browser\WidgetInterface $widget */
      $widget = $widgets
        ->get('a9609bc6-0d7d-47ca-84f1-62e76c37372a');
      $widget
        ->setWeight(-9);
      $config = $widget
        ->getConfiguration();
      $config['settings']['media_type'] = 'panopoly_media_file';
      $widget
        ->setConfiguration($config);
    }
    $config = [
      'id' => 'entity_form',
      'label' => 'Add remote video',
      'settings' => [
        'bundle' => 'panopoly_media_remote_video',
        'entity_type' => 'media',
        'form_mode' => 'entity_browser',
        'submit_text' => 'Select',
      ],
      'uuid' => 'aed962bf-6834-4b6f-b9d7-e41e530b470c',
      'weight' => -5,
    ];
    $widgets
      ->addInstanceId('aed962bf-6834-4b6f-b9d7-e41e530b470c', $config);
    if ($widgets
      ->has('0da62598-d7a1-4f21-97a4-0f9c1111eb91')) {
      $widgets
        ->removeInstanceId('0da62598-d7a1-4f21-97a4-0f9c1111eb91');
    }
    $b
      ->save();
  }
  $this
    ->installAllOfType('entity_browser.browser');
}