summaryrefslogtreecommitdiffstatshomepage
path: root/core/modules/text/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/text/src')
-rw-r--r--core/modules/text/src/Plugin/Field/FieldWidget/TextfieldWidget.php21
1 files changed, 12 insertions, 9 deletions
diff --git a/core/modules/text/src/Plugin/Field/FieldWidget/TextfieldWidget.php b/core/modules/text/src/Plugin/Field/FieldWidget/TextfieldWidget.php
index 16b7549681c1..289fbbd332cd 100644
--- a/core/modules/text/src/Plugin/Field/FieldWidget/TextfieldWidget.php
+++ b/core/modules/text/src/Plugin/Field/FieldWidget/TextfieldWidget.php
@@ -6,7 +6,10 @@ use Drupal\Core\Field\Attribute\FieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\Plugin\Field\FieldWidget\StringTextfieldWidget;
use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Render\Element\ElementInterface;
+use Drupal\Core\Render\Element\Widget;
use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\filter\Element\TextFormat;
use Symfony\Component\Validator\ConstraintViolationInterface;
/**
@@ -22,20 +25,20 @@ class TextfieldWidget extends StringTextfieldWidget {
/**
* {@inheritdoc}
*/
- public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
- $main_widget = parent::formElement($items, $delta, $element, $form, $form_state);
+ public function singleElementObject(FieldItemListInterface $items, $delta, Widget $widget, ElementInterface $form, FormStateInterface $form_state): ElementInterface {
+ $widget = parent::singleElementObject($items, $delta, $widget, $form, $form_state);
$allowed_formats = $this->getFieldSetting('allowed_formats');
- $element = $main_widget['value'];
- $element['#type'] = 'text_format';
- $element['#format'] = $items[$delta]->format ?? NULL;
- $element['#base_type'] = $main_widget['value']['#type'];
-
+ $widget = $widget->getChild('value');
+ $type = $widget->type;
+ $widget = $widget->changeType(TextFormat::class);
+ $widget->format = $items[$delta]->format ?? NULL;
+ $widget->base_type = $type;
if ($allowed_formats && !$this->isDefaultValueWidget($form_state)) {
- $element['#allowed_formats'] = $allowed_formats;
+ $widget->allowed_formats = $allowed_formats;
}
- return $element;
+ return $widget;
}
/**