Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
novicell/dds_better_backend / src / Form / BetterBackendSettingsForm.php
Size: Mime:
<?php


namespace Drupal\dds_better_backend\Form;


use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

class BetterBackendSettingsForm extends ConfigFormBase {

  /**
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      'dds_better_backend.settings'
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'better_backend_settings';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config('dds_better_backend.settings');

    // Advanced sidebar config
    $advanced_sidebar = $config->get('advanced_sidebar');
    if (empty($advanced_sidebar)) {
      $advanced_sidebar = [
        'default_value' => 'open',
      ];
    }

    // Enable tree-mode so we get the nested array values.
    $form['#tree'] = TRUE;

    $form['advanced_sidebar'] = [
      '#type' => 'details',
      '#title' => $this->t('Advanced sidebar'),
      '#description' => $this->t('Configure the various settings related to the advanced sidebar on the node add/edit forms.'),
      '#open' => TRUE,
    ];
    $form['advanced_sidebar']['default_value'] = [
      '#type' => 'radios',
      '#title' => $this->t('Default behavior'),
      '#options' => [
        'open' => $this->t('Open by default'),
        'closed' => $this->t('Closed by default')
      ],
      '#default_value' => !empty($advanced_sidebar['default_value'])? $advanced_sidebar['default_value'] : 'open'
    ];

    return parent::buildForm($form, $form_state);
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $config = $this->config('dds_better_backend.settings');
    $values = $form_state->cleanValues()->getValues();

    // Advanced sidebar config
    $advanced_sidebar = $config->get('advanced_sidebar');
    if (empty($advanced_sidebar)) {
      $advanced_sidebar = [
        'default_value' => 'open',
      ];
    }

    if (!empty($values['advanced_sidebar']['default_value'])) {
      $advanced_sidebar['default_value'] = $values['advanced_sidebar']['default_value'];
    }

    $config->set('advanced_sidebar', $advanced_sidebar)
      ->save();

    parent::submitForm($form, $form_state);
  }
}