diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php index 09bda28..96de87f 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php @@ -155,13 +155,12 @@ public function form(FieldInterface $items, array &$form, array &$form_state, $g protected function formMultipleElements(FieldInterface $items, array &$form, array &$form_state) { $field_name = $this->fieldDefinition->getFieldName(); $cardinality = $this->fieldDefinition->getFieldCardinality(); - $langcode = $items->getParent()->language()->id; $parents = $form['#parents']; // Determine the number of widgets to display. switch ($cardinality) { case FIELD_CARDINALITY_UNLIMITED: - $field_state = field_form_get_state($parents, $field_name, $langcode, $form_state); + $field_state = field_form_get_state($parents, $field_name, $items->getLangcode(), $form_state); $max = $field_state['items_count']; $is_multiple = TRUE; break; @@ -229,7 +228,7 @@ protected function formMultipleElements(FieldInterface $items, array &$form, arr '#name' => strtr($id_prefix, '-', '_') . '_add_more', '#value' => t('Add another item'), '#attributes' => array('class' => array('field-add-more-submit')), - '#limit_validation_errors' => array(array_merge($parents, array($field_name, $langcode))), + '#limit_validation_errors' => array(array_merge($parents, array($field_name, $items->getLangcode()))), '#submit' => array('field_add_more_submit'), '#ajax' => array( 'callback' => 'field_add_more_js', @@ -254,7 +253,7 @@ protected function formSingleElement(FieldInterface $items, $delta, array $eleme '#bundle' => $entity->bundle(), '#entity' => $entity, '#field_name' => $this->fieldDefinition->getFieldName(), - '#language' => $entity->language()->id, + '#language' => $items->getLangcode(), '#field_parents' => $form['#parents'], // Only the first widget should be required. '#required' => $delta == 0 && $this->fieldDefinition->isFieldRequired(), @@ -284,7 +283,7 @@ protected function formSingleElement(FieldInterface $items, $delta, array $eleme */ public function extractFormValues(FieldInterface $items, array $form, array &$form_state) { $field_name = $this->fieldDefinition->getFieldName(); - $langcode = $items->getParent()->language()->id; + $langcode = $items->getLangcode(); // Extract the values from $form_state['values']. $path = array_merge($form['#parents'], array($field_name, $langcode)); @@ -338,7 +337,7 @@ public function extractFormValues(FieldInterface $items, array $form, array &$fo */ public function flagErrors(FieldInterface $items, array $form, array &$form_state) { $field_name = $this->fieldDefinition->getFieldName(); - $langcode = $items->getParent()->language()->id; + $langcode = $items->getLangcode(); $field_state = field_form_get_state($form['#parents'], $field_name, $langcode, $form_state); diff --git a/core/modules/file/lib/Drupal/file/Plugin/field/widget/FileWidget.php b/core/modules/file/lib/Drupal/file/Plugin/field/widget/FileWidget.php index ad74743..722c224 100644 --- a/core/modules/file/lib/Drupal/file/Plugin/field/widget/FileWidget.php +++ b/core/modules/file/lib/Drupal/file/Plugin/field/widget/FileWidget.php @@ -63,14 +63,12 @@ public function settingsSummary() { */ protected function formMultipleElements(FieldInterface $items, array &$form, array &$form_state) { $field_name = $this->fieldDefinition->getFieldName(); - $langcode = $items->getParent()->language()->id; - $parents = $form['#parents']; // Load the items for form rebuilds from the field state as they might not be // in $form_state['values'] because of validation limitations. Also, they are // only passed in as $items when editing existing entities. - $field_state = field_form_get_state($parents, $field_name, $langcode, $form_state); + $field_state = field_form_get_state($parents, $field_name, $items->getLangcode(), $form_state); if (isset($field_state['items'])) { $items->setValue($field_state['items']); }