3 namespace Drupal\environment_indicator\Form;
5 use Drupal\Core\Form\FormInterface;
6 use Drupal\Core\Form\ConfigFormBase;
7 use Drupal\Core\Form\FormStateInterface;
9 class EnvironmentIndicatorSettingsForm extends ConfigFormBase implements FormInterface {
14 public function getFormID() {
15 return 'environment_indicator_settings_form';
21 public function buildForm(array $form, FormStateInterface $form_state) {
22 $config = $this->config('environment_indicator.settings');
23 $form = parent::buildForm($form, $form_state);
24 $form['toolbar_integration'] = [
25 '#type' => 'checkboxes',
26 '#title' => $this->t('Toolbar integration'),
28 'toolbar' => $this->t('Toolbar'),
30 '#description' => $this->t('Select the toolbars that you want to integrate with.'),
31 '#default_value' => $config->get('toolbar_integration') ?: [],
34 '#type' => 'checkbox',
35 '#title' => $this->t('Show favicon'),
36 '#description' => $this->t('If checked, a favicon will be added with the environment colors when the indicator is shown.'),
37 '#default_value' => $config->get('favicon') ?: FALSE,
45 protected function getEditableConfigNames() {
46 return ['environment_indicator.settings'];
52 public function submitForm(array &$form, FormStateInterface $form_state) {
53 $config = $this->config('environment_indicator.settings');
54 $properties = ['toolbar_integration', 'favicon'];
55 array_walk($properties, function ($property) use ($config, $form_state) {
56 $config->set($property, $form_state->getValue($property));
59 parent::submitForm($form, $form_state);