You are here

function panopoly_media_update_8206 in Panopoly 8.2

Update config to use our custom entity browser view.

File

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

Code

function panopoly_media_update_8206() {

  // Import new entity browser view.
  $view_config_name = 'views.view.panopoly_media_browser';
  $config_path = drupal_get_path('module', 'panopoly_media') . '/config/install';
  $source = new FileStorage($config_path);

  /** @var \Drupal\Core\Config\StorageInterface $config_storage */
  $config_storage = \Drupal::service('config.storage');
  $config_storage
    ->write($view_config_name, $source
    ->read($view_config_name));

  /** @var \Drupal\Core\Config\ConfigFactoryInterface $config_factory */
  $config_factory = \Drupal::service('config.factory');

  // Update our two entity browsers to use it.
  $media_browsers_to_update = [
    'entity_browser.browser.panopoly_media_field_media_browser' => '828212e6-5506-4f23-a333-4b56a08ac85b',
    'entity_browser.browser.panopoly_media_wysiwyg_media_browser' => 'a1ed5dca-2adc-478d-a9b0-014a7df6bb6e',
  ];
  foreach ($media_browsers_to_update as $config_name => $widget_uuid) {
    $config = $config_factory
      ->getEditable($config_name);

    // Only update this value if it hasn't been changed by the site admin.
    if ($config
      ->get("widgets.{$widget_uuid}.settings.view") === 'media_entity_browser') {
      $config
        ->set("widgets.{$widget_uuid}.settings.view", 'panopoly_media_browser');
      $config
        ->save();
    }
  }

  // Update the media entity browser thumbnail image style.
  $config = $config_factory
    ->getEditable('image.style.panopoly_media_entity_browser_thumbnail');
  $data = $config
    ->getRawData();
  if ($data['label'] === 'Entity Browser Thumbnail') {
    $data['label'] = 'Media Entity Browser Thumbnail';
  }
  if (isset($data['effects']['384c8fe8-d61d-42df-a0ac-f006a5f9b232'])) {
    unset($data['effects']['384c8fe8-d61d-42df-a0ac-f006a5f9b232']);
    $data['effects']['793bbd62-5859-4049-8b02-967dd91084c4'] = [
      'uuid' => '793bbd62-5859-4049-8b02-967dd91084c4',
      'id' => 'image_scale_and_crop',
      'weight' => 1,
      'data' => [
        'width' => 350,
        'height' => 200,
        'anchor' => 'center-center',
      ],
    ];
  }
  $config
    ->setData($data);
  $config
    ->save();
}