You are here

public function RemoteImageItem::fieldSettingsForm in Remote image 8

Returns a form for the field-level settings.

Invoked from \Drupal\field_ui\Form\FieldConfigEditForm to allow administrators to configure field-level settings.

Parameters

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

\Drupal\Core\Form\FormStateInterface $form_state: The form state of the (entire) configuration form.

Return value

array The form definition for the field settings.

Overrides LinkItem::fieldSettingsForm

File

src/Plugin/Field/FieldType/RemoteImageItem.php, line 49
Contains Drupal\remote_image\Plugin\Field\FieldType\RemoteImageField.

Class

RemoteImageItem
Plugin implementation of the 'remote_image' field type.

Namespace

Drupal\remote_image\Plugin\Field\FieldType

Code

public function fieldSettingsForm(array $form, FormStateInterface $form_state) {

  // Get base form from LinkItem.
  $element = array_diff_key(parent::fieldSettingsForm($form, $form_state), [
    'title' => FALSE,
  ]);
  $element['link_type']['#weight'] = 8;
  $settings = $this
    ->getSettings();

  // Add title and alt configuration options.
  $element['alt_field'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable <em>Alt</em> field'),
    '#default_value' => $settings['alt_field'],
    '#description' => t('The alt attribute may be used by search engines, screen readers, and when the image cannot be loaded. Enabling this field is recommended.'),
    '#weight' => 9,
  );
  $element['alt_field_required'] = array(
    '#type' => 'checkbox',
    '#title' => t('<em>Alt</em> field required'),
    '#default_value' => $settings['alt_field_required'],
    '#description' => t('Making this field required is recommended.'),
    '#weight' => 10,
    '#states' => array(
      'visible' => array(
        ':input[name="settings[alt_field]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $element['title_field'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable <em>Title</em> field'),
    '#default_value' => $settings['title_field'],
    '#description' => t('The title attribute is used as a tooltip when the mouse hovers over the image. Enabling this field is not recommended as it can cause problems with screen readers.'),
    '#weight' => 11,
  );
  $element['title_field_required'] = array(
    '#type' => 'checkbox',
    '#title' => t('<em>Title</em> field required'),
    '#default_value' => $settings['title_field_required'],
    '#weight' => 12,
    '#states' => array(
      'visible' => array(
        ':input[name="settings[title_field]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  return $element;
}