You are here

PluginConfigurationFormTrait.php in Entity Browser 8

Same filename and directory in other branches
  1. 8.2 src/PluginConfigurationFormTrait.php

File

src/PluginConfigurationFormTrait.php
View source
<?php

namespace Drupal\entity_browser;

use Drupal\Core\Form\FormStateInterface;

/**
 * Provides base form methods for configurable plugins entity browser.
 */
trait PluginConfigurationFormTrait {

  /**
   * Implements PluginFormInterface::buildConfigurationForm().
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    return $form;
  }

  /**
   * Implements PluginFormInterface::validateConfigurationForm().
   */
  public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
  }

  /**
   * Implements PluginFormInterface::submitConfigurationForm().
   *
   * This is the default implementation for the most common cases where the form
   * element names match keys in configuration array. Plugins can override this
   * if they need more complex logic.
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    $values = $form_state
      ->getValues();
    if ($this instanceof WidgetInterface) {
      $values = $values['table'][$this
        ->uuid()]['form'];
    }
    if (!empty($values)) {
      foreach ($values as $key => $value) {
        if (array_key_exists($key, $this->configuration)) {
          $this->configuration[$key] = $value;
        }
      }
    }
  }

}

Traits

Namesort descending Description
PluginConfigurationFormTrait Provides base form methods for configurable plugins entity browser.