Same name and namespace in other branches
  1. 8.x-2.x src/Plugin/Field/FieldWidget/ExifWidgetBase.php \Drupal\exif\Plugin\Field\FieldWidget\ExifWidgetBase::settingsForm() 1 comment
1 method overrides ExifWidgetBase::settingsForm()
ExifFieldWidgetBase::settingsForm in src/Plugin/Field/FieldWidget/ExifFieldWidgetBase.php

File

src/Plugin/Field/FieldWidget/ExifWidgetBase.php, line 60

Class

ExifWidgetBase
Base class for 'Exif Field widget' plugin implementations.

Namespace

Drupal\exif\Plugin\Field\FieldWidget

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
    $element = parent::settingsForm($form, $form_state);
    if ($form['#entity_type'] == "node" || $form['#entity_type'] == "media") {
        $image_fields = $this->retrieveImageFieldFromBundle($form['#entity_type'], $form['#bundle']);
        $default_image_value = $this->retrieveImageFieldDefaultValue($element, $image_fields);
        $element['image_field'] = [
            '#type' => 'radios',
            '#title' => t('image field to use to retrieve data'),
            '#description' => t('determine the image used to look for exif and iptc metadata'),
            '#options' => $image_fields,
            '#default_value' => $default_image_value,
            '#element_validate' => [
                [
                    get_class($this),
                    'validateImageField',
                ],
            ],
        ];
    }
    if ($form['#entity_type'] == "file") {
        $element['image_field'] = [
            '#type' => 'hidden',
            '#default_value' => "file",
            '#value' => "file",
        ];
    }
    return $element;
}