You are here

public function EntityFormDisplay::processForm in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php \Drupal\Core\Entity\Entity\EntityFormDisplay::processForm()

Process callback: assigns weights and hides extra fields.

See also

\Drupal\Core\Entity\Entity\EntityFormDisplay::buildForm()

File

core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php, line 209

Class

EntityFormDisplay
Configuration entity that contains widget options for all components of an entity form in a given form mode.

Namespace

Drupal\Core\Entity\Entity

Code

public function processForm($element, FormStateInterface $form_state, $form) {

  // Assign the weights configured in the form display.
  foreach ($this
    ->getComponents() as $name => $options) {
    if (isset($element[$name])) {
      $element[$name]['#weight'] = $options['weight'];
    }
  }

  // Hide extra fields.
  $extra_fields = \Drupal::service('entity_field.manager')
    ->getExtraFields($this->targetEntityType, $this->bundle);
  $extra_fields = isset($extra_fields['form']) ? $extra_fields['form'] : [];
  foreach ($extra_fields as $extra_field => $info) {
    if (!$this
      ->getComponent($extra_field)) {
      $element[$extra_field]['#access'] = FALSE;
    }
  }
  return $element;
}