class AdminToolbarVersionSettingsForm in Admin Toolbar Version 1.0.x
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\admin_toolbar_version\Form\AdminToolbarVersionSettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of AdminToolbarVersionSettingsForm
1 string reference to 'AdminToolbarVersionSettingsForm'
File
- src/
Form/ AdminToolbarVersionSettingsForm.php, line 8
Namespace
Drupal\admin_toolbar_version\FormView source
class AdminToolbarVersionSettingsForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'admin_toolbar_version';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'admin_toolbar_version.settings',
];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
$config = $this
->config('admin_toolbar_version.settings');
$form['#title'] = $this
->t('Admin Toolbar Version');
$form['#tree'] = true;
foreach ($config
->get('environments') as $id => $environment) {
$form['environments'][$id] = [
'#type' => 'details',
'#title' => $environment['name'],
'#open' => false,
'name' => [
'#type' => 'textfield',
'#title' => 'Name',
'#description' => 'The name that should be displayed in the toolbar',
'#default_value' => $environment['name'],
],
'domain' => [
'#type' => 'textfield',
'#title' => 'Domain',
'#description' => 'Enter a preg_match pattern to match the host (eg. "/www\\.domain\\.com/" ).',
'#default_value' => $environment['domain'],
],
'variable' => [
'#type' => 'textfield',
'#title' => 'Variable',
'#description' => 'Enter the value as available in $_ENV',
'#default_value' => $environment['variable'],
],
'color' => [
'#type' => 'textfield',
'#title' => 'Color',
'#description' => 'Enter the css color for the background of the toolbar item (eg. #FF0000 or red)',
'#default_value' => $environment['color'],
],
'git' => [
'#type' => 'textfield',
'#title' => 'Git',
'#description' => 'Path to the GIT HEAD file (relative to Drupal root), Leave empty to not show GIT info.',
'#default_value' => $environment['git'],
],
];
}
$form['environments'][0] = [
'#type' => 'details',
'#open' => TRUE,
'#title' => 'Add new environment',
'name' => [
'#type' => 'textfield',
'#title' => 'Name',
'#description' => 'The name that should be displayed in the toolbar. Leave empty to remove an environment.',
'#default_value' => '',
],
'domain' => [
'#type' => 'textfield',
'#title' => 'Domain',
'#description' => 'Enter a preg_match pattern to match the host (eg. "/www\\.domain\\.com/" ).',
'#default_value' => '',
],
'variable' => [
'#type' => 'textfield',
'#title' => 'Variable',
'#description' => 'Enter the value as available in $_ENV',
'#default_value' => '',
],
'color' => [
'#type' => 'textfield',
'#title' => 'Color',
'#description' => 'Enter the css color for the background of the toolbar item (eg. #FF0000 or red)',
'#default_value' => '',
],
'git' => [
'#type' => 'textfield',
'#title' => 'Git',
'#description' => 'Path to the GIT HEAD file (relative to Drupal root), Leave empty to not show GIT info.',
'#default_value' => '/.git/HEAD',
],
];
/** @var \Drupal\Core\Extension\ExtensionList $extension_list */
$extension_list = \Drupal::service('extension.list.module');
$list = $extension_list
->getList();
$list_options = [];
foreach ($list as $name => $item) {
$list_options[$name] = $item
->getName();
}
$form['version_source'] = [
'#type' => 'select',
'#options' => $list_options,
'#title' => 'Version source',
'#description' => 'The module to grab the version information from.',
'#default_value' => $config
->get('version_source') ?? \Drupal::installProfile(),
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
// Get values.
$environments = $form_state
->getValue('environments');
// Make sure the new environment gets a uuid.
if (isset($environments[0])) {
$uuid_service = \Drupal::service('uuid');
$uuid = $uuid_service
->generate();
$environments[$uuid] = $environments[0];
unset($environments[0]);
}
// Remove empty environments.
$environments = array_filter($environments, function ($environment) {
return !empty($environment['name']);
});
// Save environments.
$config = $this
->config('admin_toolbar_version.settings');
$config
->set('environments', $environments);
// Save version source.
$config
->set('version_source', $form_state
->getValue('version_source', ''));
$config
->save();
// Clear cache so admin menu can rebuild.
\Drupal::service('plugin.manager.menu.link')
->rebuild();
parent::submitForm($form, $form_state);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AdminToolbarVersionSettingsForm:: |
public | function |
Form constructor. Overrides ConfigFormBase:: |
|
AdminToolbarVersionSettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
AdminToolbarVersionSettingsForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
AdminToolbarVersionSettingsForm:: |
public | function |
Form submission handler. Overrides ConfigFormBase:: |
|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
18 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 16 |
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 3 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 3 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function | Returns a redirect response object for the specified route. | |
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
72 |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |