public function EditFieldForm::build

Builds a form for a single entity field.

File

drupal/core/modules/edit/lib/Drupal/edit/Form/EditFieldForm.php, line 20
Contains \Drupal\edit\Form\EditFieldForm.

Class

EditFieldForm
Builds and process a form for editing a single entity field.

Namespace

Drupal\edit\Form

Code

public function build(array $form, array &$form_state, EntityInterface $entity, $field_name) {
  if (!isset($form_state['entity'])) {
    $this
      ->init($form_state, $entity, $field_name);
  }

  // Add the field form.
  field_attach_form($form_state['entity'], $form, $form_state, $form_state['langcode'], array(
    'field_name' => $form_state['field_name'],
  ));

  // Add a submit button. Give it a class for easy JavaScript targeting.
  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#attributes' => array(
      'class' => array(
        'edit-form-submit',
      ),
    ),
  );

  // Add validation and submission handlers.
  $form['#validate'][] = array(
    $this,
    'validate',
  );
  $form['#submit'][] = array(
    $this,
    'submit',
  );

  // Simplify it for optimal in-place use.
  $this
    ->simplify($form, $form_state);
  return $form;
}