cookie_blocking_libraries-1.0.x-dev/src/Form/CookieImplementationSettings.php
src/Form/CookieImplementationSettings.php
<?php
namespace Drupal\cookie_blocking_libraries\Form;
use Drupal\cookie_blocking_libraries\CookieImplementationPluginManager;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Configure cookie_blocking_libraries settings for this site.
*/
class CookieImplementationSettings extends ConfigFormBase {
/**
* The plugin manager.
*
* @var \Drupal\cookie_blocking_libraries\CookieImplementationPluginManager
*/
protected CookieImplementationPluginManager $pluginManager;
/**
* {@inheritDoc}
*/
public function __construct(ConfigFactoryInterface $config_factory) {
parent::__construct($config_factory);
$this->pluginManager = \Drupal::service('plugin.manager.cookie_blocking_libraries_implementation');
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'cookie_blocking_libraries_cookie_implementation_settings';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return ['cookie_blocking_libraries.implementation_settings'];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$options = $this->pluginManager->getSelectOptions();
$form['enabled_plugins'] = [
'#type' => 'select',
'#title' => $this->t('Enabled implementation'),
'#options' => $options,
'#default_value' => $this->config('cookie_blocking_libraries.implementation_settings')->get('enabled_plugins') ?? [],
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$this->config('cookie_blocking_libraries.implementation_settings')
->set('enabled_plugins', $form_state->getValue('enabled_plugins'))
->save();
parent::submitForm($form, $form_state);
$form_state->setRedirect('cookie_blocking_libraries.categorisation_settings_form');
}
}
