You are here

public static function BaseSettings::submitLibraryPluginConfiguration in Charts 8.4

Same name and namespace in other branches
  1. 5.0.x src/Element/BaseSettings.php \Drupal\charts\Element\BaseSettings::submitLibraryPluginConfiguration()

Submits the plugin configuration.

Parameters

array $element: An associative array containing the properties of the element.

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

Throws

\Drupal\Component\Plugin\Exception\PluginException

File

src/Element/BaseSettings.php, line 521

Class

BaseSettings
Provides a form element for setting a chart.

Namespace

Drupal\charts\Element

Code

public static function submitLibraryPluginConfiguration(array &$element, FormStateInterface $form_state) {
  $used_in = $element['#used_in'];
  if ($used_in === 'config_form') {
    $settings = $form_state
      ->getValue($element['#parents']);
    if (!empty($settings['library'])) {
      $library = $settings['library'];
      $library_form = $library . '_settings';

      /** @var \Drupal\Component\Plugin\PluginManagerInterface $plugin_manager */
      $plugin_manager = \Drupal::service('plugin.manager.charts');

      /** @var \Drupal\charts\Plugin\chart\Library\ChartInterface $plugin */
      $plugin = $plugin_manager
        ->createInstance($library);
      $plugin
        ->submitConfigurationForm($element[$library_form], $form_state);
      $form_state
        ->setValueForElement($element[$library_form], $plugin
        ->getConfiguration());
    }
  }
}