You are here

public function MediaDirectoriesImageDimensionsFormatter::settingsForm in Media Directories 8

Same name and namespace in other branches
  1. 2.x modules/media_directories_editor/src/Plugin/Field/FieldFormatter/MediaDirectoriesImageDimensionsFormatter.php \Drupal\media_directories_editor\Plugin\Field\FieldFormatter\MediaDirectoriesImageDimensionsFormatter::settingsForm()

Returns a form to configure settings for the formatter.

Invoked from \Drupal\field_ui\Form\EntityDisplayFormBase to allow administrators to configure the formatter. The field_ui module takes care of handling submitted form values.

Parameters

array $form: The form where the settings form is being included in.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form elements for the formatter settings.

Overrides ImageFormatter::settingsForm

File

modules/media_directories_editor/src/Plugin/Field/FieldFormatter/MediaDirectoriesImageDimensionsFormatter.php, line 110

Class

MediaDirectoriesImageDimensionsFormatter
Plugin implementation of the 'media_directories_editor_thumbnail' formatter.

Namespace

Drupal\media_directories_editor\Plugin\Field\FieldFormatter

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $element = parent::settingsForm($form, $form_state);
  if ($this->viewMode === '_entity_embed') {
    $storage = $form_state
      ->getStorage();

    /** @var \Drupal\media\Entity\Media $entity */
    $entity = $storage['entity'];
    $element['#attached']['library'][] = 'media_directories_editor/image-resize';
    $element['image_style']['#access'] = FALSE;
    $element['image_link']['#access'] = FALSE;
    $element['dimensions'] = [
      '#type' => 'fieldset',
      '#title' => $this
        ->t('Image size'),
      '#description' => $this
        ->t('Original image size: @widthx@height', [
        '@width' => $entity
          ->get('thumbnail')->width,
        '@height' => $entity
          ->get('thumbnail')->height,
      ]),
      '#attributes' => [
        'class' => [
          'media-directories-editor--dimensions',
        ],
      ],
    ];
    $dimensions = $this
      ->getSetting('dimensions');
    $img_width = empty($dimensions['image_width']) ? $entity
      ->get('thumbnail')->width : $dimensions['image_width'];
    $img_height = empty($dimensions['image_height']) ? $entity
      ->get('thumbnail')->height : $dimensions['image_height'];
    $element['dimensions']['image_width'] = [
      '#title' => t('Width'),
      '#type' => 'textfield',
      '#size' => 4,
      '#default_value' => $img_width,
      '#attributes' => [
        'class' => [
          'media-directories-editor--image-width',
        ],
      ],
    ];
    $element['dimensions']['image_height'] = [
      '#title' => t('Height'),
      '#type' => 'textfield',
      '#size' => 4,
      '#default_value' => $img_height,
      '#attributes' => [
        'class' => [
          'media-directories-editor--image-height',
        ],
      ],
    ];
    $element['dimensions']['controls'] = [
      '#type' => 'container',
      '#attributes' => [
        'class' => [
          'media-directories-editor--controls',
        ],
      ],
      'reset' => [
        '#type' => 'html_tag',
        '#tag' => 'a',
        '#attributes' => [
          'class' => [
            'media-directories-editor--reset',
            'button',
          ],
          'data-width' => $entity
            ->get('thumbnail')->width,
          'data-height' => $entity
            ->get('thumbnail')->height,
        ],
        '#value' => $this
          ->t('Reset'),
      ],
    ];
  }
  return $element;
}