You are here

protected function NodeForm::actions in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/node/src/NodeForm.php \Drupal\node\NodeForm::actions()
  2. 10 core/modules/node/src/NodeForm.php \Drupal\node\NodeForm::actions()

Returns an array of supported actions for the current entity form.

This function generates a list of Form API elements which represent actions supported by the current entity form.

@todo Consider introducing a 'preview' action here, since it is used by many entity types.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array An array of supported Form API action elements keyed by name.

Overrides EntityForm::actions

File

core/modules/node/src/NodeForm.php, line 239

Class

NodeForm
Form handler for the node edit forms.

Namespace

Drupal\node

Code

protected function actions(array $form, FormStateInterface $form_state) {
  $element = parent::actions($form, $form_state);
  $node = $this->entity;
  $preview_mode = $node->type->entity
    ->getPreviewMode();
  $element['submit']['#access'] = $preview_mode != DRUPAL_REQUIRED || $form_state
    ->get('has_been_previewed');
  $element['preview'] = [
    '#type' => 'submit',
    '#access' => $preview_mode != DRUPAL_DISABLED && ($node
      ->access('create') || $node
      ->access('update')),
    '#value' => t('Preview'),
    '#weight' => 20,
    '#submit' => [
      '::submitForm',
      '::preview',
    ],
  ];
  if (array_key_exists('delete', $element)) {
    $element['delete']['#weight'] = 100;
  }
  return $element;
}