function TextareaWithSummaryWidget::formElement

Same name and namespace in other branches
  1. 9 core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget::formElement()
  2. 8.9.x core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget::formElement()
  3. 11.x core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget::formElement()

Overrides TextareaWidget::formElement

File

core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php, line 71

Class

TextareaWithSummaryWidget
Plugin implementation of the 'text_textarea_with_summary' widget.

Namespace

Drupal\text\Plugin\Field\FieldWidget

Code

public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
  $element = parent::formElement($items, $delta, $element, $form, $form_state);
  $display_summary = $items[$delta]->summary || $this->getFieldSetting('display_summary');
  $required = empty($form['#type']) && $this->getFieldSetting('required_summary');
  $element['summary'] = [
    '#type' => $display_summary ? 'textarea' : 'value',
    '#default_value' => $items[$delta]->summary,
    '#title' => $this->t('Summary'),
    '#rows' => $this->getSetting('summary_rows'),
    '#description' => !$required ? $this->t('Leave blank to use trimmed value of full text as the summary.') : '',
    '#attributes' => [
      'class' => [
        'text-summary',
      ],
    ],
    '#prefix' => '<div class="js-text-summary-wrapper text-summary-wrapper">',
    '#suffix' => '</div>',
    '#weight' => -10,
    '#required' => $required,
  ];
  if (!$this->getSetting('show_summary') && !$required) {
    $element['summary']['#attributes']['class'][] = 'js-text-summary';
    $element['summary']['#attached']['library'][] = 'text/drupal.text';
  }
  return $element;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.