/** * {@inheritdoc} */ public function extractFormValues(FieldItemListInterface $items, array $form, FormStateInterface $form_state) { $field_name = $this->fieldDefinition->getName(); // Extract the values from $form_state->getValues(). $path = array_merge($form['#parents'], array($field_name)); $key_exists = NULL; // Convert the field value into expected array format. $values = $form_state->getValues(); $value = NestedArray::getValue($values, $path, $key_exists); if (empty($value)) { parent::extractFormValues($items, $form, $form_state); return; } if (!isset($value[0]['target_id'])) { NestedArray::setValue($values, $path, [['target_id' => reset($value)]]); $form_state->setValues($values); } parent::extractFormValues($items, $form, $form_state); }
/** * {@inheritdoc} */ public static function isApplicable(FieldDefinitionInterface $field_definition) { return parent::isApplicable($field_definition) && $field_definition->getName() === 'moderation_state'; }