Repository URL to install this package:
|
Version:
1.0.3 ▾
|
<?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);
}
}