You are here

function thunder_media_update_8010 in Thunder 8.2

Activate support for responsive images with Blazy.

File

modules/thunder_media/thunder_media.install, line 414
Contains.

Code

function thunder_media_update_8010() {

  /** @var \Drupal\update_helper\Updater $updater */
  $updater = \Drupal::service('update_helper.updater');
  $updateLogger = $updater
    ->logger();

  // Import image styles.
  \Drupal::service('module_installer')
    ->install([
    'config_update',
  ]);
  try {
    $configUpdater = \Drupal::service('config_update.config_update');
    $configUpdater
      ->import('responsive_image_style', 'media_image');
    $configUpdater
      ->import('image_style', 'media_image_tablet');
    $configUpdater
      ->import('image_style', 'media_image_mobile');
    $configUpdater
      ->import('slick', 'thunder_gallery');
  } catch (\Exception $e) {
    $message = t('Responsive image styles was not created.');
    $updateLogger
      ->warning($message);
  }

  // Expected settings for blazy module.
  $expectedBlazySettings['responsive_image'] = FALSE;

  // New settings for blazy module.
  $newBlazySettings['responsive_image'] = TRUE;
  if (\Drupal::moduleHandler()
    ->moduleExists('blazy') && \Drupal::moduleHandler()
    ->moduleExists('responsive_image') && _thunder_media_update_config('blazy.settings', $newBlazySettings, $expectedBlazySettings)) {
    $updateLogger
      ->info('The support for responsive images was activated in the Blazy settings.');
  }

  // Expected configurations for required Video and Image media fields.
  $expectedConfigs['core.entity_view_display.media.image.default']['content']['field_image']['settings']['image_style'] = 'media_image';
  $expectedConfigs['core.entity_view_display.media.image.default']['content']['field_image']['settings']['responsive_image_style'] = '';
  $expectedConfigs['core.entity_view_display.media.gallery.default']['content']['field_media_images']['settings']['optionset'] = 'default';
  $expectedConfigs['core.entity_view_display.media.image.slick']['content']['field_image']['settings']['image_style'] = 'gallery';
  $expectedConfigs['core.entity_view_display.media.image.slick']['content']['field_image']['settings']['responsive_image_style'] = '';
  $expectedConfigs['image.style.media_image']['effects']['21ef239e-0d92-4fcc-84fc-17f4da42ae2f']['data']['width'] = 925;
  $expectedConfigs['image.style.media_image']['effects']['21ef239e-0d92-4fcc-84fc-17f4da42ae2f']['data']['height'] = 520;

  // Config for required Video and Image media fields.
  $newConfigs['core.entity_view_display.media.image.default']['content']['field_image']['settings']['image_style'] = '';
  $newConfigs['core.entity_view_display.media.image.default']['content']['field_image']['settings']['responsive_image_style'] = 'media_image';
  $newConfigs['core.entity_view_display.media.gallery.default']['content']['field_media_images']['settings']['optionset'] = 'thunder_gallery';
  $newConfigs['core.entity_view_display.media.image.slick']['content']['field_image']['settings']['image_style'] = '';
  $newConfigs['core.entity_view_display.media.image.slick']['content']['field_image']['settings']['responsive_image_style'] = 'media_image';
  $newConfigs['image.style.media_image']['effects']['21ef239e-0d92-4fcc-84fc-17f4da42ae2f']['data']['width'] = 938;
  $newConfigs['image.style.media_image']['effects']['21ef239e-0d92-4fcc-84fc-17f4da42ae2f']['data']['height'] = 527;
  foreach ($newConfigs as $configName => $newConfig) {
    if (!_thunder_media_update_config($configName, $newConfig, $expectedConfigs[$configName])) {
      $updateLogger
        ->warning(t('Unable to update configuration for "@configName".', [
        '@configName' => $configName,
      ]));
    }
  }
  return $updateLogger
    ->output();
}