function TextareaWithSummaryWidget::formElement
Same name in other branches
- 9 core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget::formElement()
- 8.9.x core/modules/text/src/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget::formElement()
- 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\FieldWidgetCode
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.