You are here

public function BlockFormAlter::validateForm in Block Style Plugins 8.2

Validate the form.

Parameters

array $form: The form definition array for the block configuration form.

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

File

src/BlockFormAlter.php, line 151

Class

BlockFormAlter
Base class for Block style plugins.

Namespace

Drupal\block_style_plugins

Code

public function validateForm(array $form, FormStateInterface $form_state) {

  // Retrieve a list of possible style plugin definitions.
  $available_plugins = $this->blockStyleManager
    ->getBlockDefinitions();
  $style_settings = $form_state
    ->getValue([
    'third_party_settings',
    'block_style_plugins',
  ]);
  foreach ($style_settings as $plugin_id => $settings) {

    // Only instantiate plugins that are available.
    if (array_key_exists($plugin_id, $available_plugins)) {

      /** @var \Drupal\block_style_plugins\Plugin\BlockStyleInterface $style_plugin */
      $style_plugin = $this->blockStyleManager
        ->createInstance($plugin_id);
      if ($style_plugin instanceof PluginFormInterface) {
        $subform_state = SubformState::createForSubform($form['third_party_settings']['block_style_plugins'][$plugin_id], $form, $form_state);
        $style_plugin
          ->validateConfigurationForm($form['third_party_settings']['block_style_plugins'][$plugin_id], $subform_state);
      }
    }
  }
}