You are here

public function BlazyAdminFormatterBase::getExcludedSettingsSummary in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/Form/BlazyAdminFormatterBase.php \Drupal\blazy\Form\BlazyAdminFormatterBase::getExcludedSettingsSummary()
  2. 7 src/Form/BlazyAdminFormatterBase.php \Drupal\blazy\Form\BlazyAdminFormatterBase::getExcludedSettingsSummary()

Exclude the field formatter settings summary as required.

1 call to BlazyAdminFormatterBase::getExcludedSettingsSummary()
BlazyAdminFormatterBase::getSettingsSummary in src/Form/BlazyAdminFormatterBase.php
Return the field formatter settings summary.

File

src/Form/BlazyAdminFormatterBase.php, line 146

Class

BlazyAdminFormatterBase
A base for field formatter admin to have re-usable methods in one place.

Namespace

Drupal\blazy\Form

Code

public function getExcludedSettingsSummary(array &$definition = []) {
  $settings =& $definition['settings'];
  $excludes = empty($definition['excludes']) ? [] : $definition['excludes'];
  $plugin_id = isset($definition['plugin_id']) ? $definition['plugin_id'] : '';
  $blazy = $plugin_id && strpos($plugin_id, 'blazy') !== FALSE;
  $image_styles = $this
    ->getEntityAsOptions('image_style');
  $lightboxes = $this->blazyManager
    ->getLightboxes();
  $excludes['current_view_mode'] = TRUE;
  if ($blazy) {
    $excludes['optionset'] = TRUE;
  }
  if (empty($settings['grid'])) {
    foreach ([
      'grid',
      'grid_medium',
      'grid_small',
      'visible_items',
    ] as $key) {
      $excludes[$key] = TRUE;
    }
  }
  if ($lightboxes && !empty($settings['media_switch']) && !in_array($settings['media_switch'], $lightboxes)) {
    foreach ([
      'box_style',
      'box_media_style',
      'box_caption',
    ] as $key) {
      $excludes[$key] = TRUE;
    }
  }
  if (empty($settings['media_switch'])) {
    foreach ([
      'box_style',
      'box_media_style',
      'box_caption',
    ] as $key) {
      $excludes[$key] = TRUE;
    }
  }

  // Remove exluded settings.
  foreach ($excludes as $key => $value) {
    if (isset($settings[$key])) {
      unset($settings[$key]);
    }
  }
  foreach ($settings as $key => $setting) {
    if ($key == 'style' || $key == 'responsive_image_style' || empty($settings[$key])) {
      continue;
    }
    if (strpos($key, 'style') !== FALSE && isset($image_styles[$settings[$key]])) {
      $settings[$key] = $image_styles[$settings[$key]];
    }
  }
}