public function PictureFormatter::settingsForm

Returns a form to configure settings for the formatter.

Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm 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.

array $form_state: An associative array containing the current state of the form.

Return value

array The form elements for the formatter settings.

Overrides FormatterBase::settingsForm

File

drupal/core/modules/picture/lib/Drupal/picture/Plugin/field/formatter/PictureFormatter.php, line 37
Contains \Drupal\picture\Plugin\field\formatter\PictureFormatter.

Class

PictureFormatter
Plugin for picture formatter.

Namespace

Drupal\picture\Plugin\field\formatter

Code

public function settingsForm(array $form, array &$form_state) {
  $picture_options = array();
  $picture_mappings = entity_load_multiple('picture_mapping');
  if ($picture_mappings && !empty($picture_mappings)) {
    foreach ($picture_mappings as $machine_name => $picture_mapping) {
      if ($picture_mapping
        ->hasMappings()) {
        $picture_options[$machine_name] = $picture_mapping
          ->label();
      }
    }
  }
  $elements['picture_mapping'] = array(
    '#title' => t('Picture mapping'),
    '#type' => 'select',
    '#default_value' => $this
      ->getSetting('picture_mapping'),
    '#required' => TRUE,
    '#options' => $picture_options,
  );
  $image_styles = image_style_options(FALSE);
  $elements['fallback_image_style'] = array(
    '#title' => t('Fallback image style'),
    '#type' => 'select',
    '#default_value' => $this
      ->getSetting('fallback_image_style'),
    '#empty_option' => t('Automatic'),
    '#options' => $image_styles,
  );
  $link_types = array(
    'content' => t('Content'),
    'file' => t('File'),
  );
  $elements['image_link'] = array(
    '#title' => t('Link image to'),
    '#type' => 'select',
    '#default_value' => $this
      ->getSetting('image_link'),
    '#empty_option' => t('Nothing'),
    '#options' => $link_types,
  );
  return $elements;
}