public function BlockFormController::validate

Overrides \Drupal\Core\Entity\EntityFormController::validate().

Overrides EntityFormController::validate

File

drupal/core/modules/block/lib/Drupal/block/BlockFormController.php, line 193
Contains \Drupal\block\BlockFormController.

Class

BlockFormController
Provides form controller for block instance forms.

Namespace

Drupal\block

Code

public function validate(array $form, array &$form_state) {
  parent::validate($form, $form_state);
  $entity = $this->entity;
  if ($entity
    ->isNew()) {
    form_set_value($form['id'], $entity
      ->get('theme') . '.' . $form_state['values']['machine_name'], $form_state);
  }
  if (!empty($form['machine_name']['#disabled'])) {
    $config_id = explode('.', $form_state['values']['machine_name']);
    $form_state['values']['machine_name'] = array_pop($config_id);
  }
  $form_state['values']['visibility']['role']['roles'] = array_filter($form_state['values']['visibility']['role']['roles']);

  // The Block Entity form puts all block plugin form elements in the
  // settings form element, so just pass that to the block for validation.
  $settings = array(
    'values' => &$form_state['values']['settings'],
  );

  // Call the plugin validate handler.
  $entity
    ->getPlugin()
    ->validate($form, $settings);
}