class SettingsForm in The CodeMirror Editor 8
CodeMirror editor settings form.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\codemirror_editor\Form\SettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of SettingsForm
1 string reference to 'SettingsForm'
File
- src/
Form/ SettingsForm.php, line 17
Namespace
Drupal\codemirror_editor\FormView source
class SettingsForm extends ConfigFormBase {
/**
* The cache tags invalidator.
*
* @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface
*/
protected $cacheTagsInvalidator;
/**
* The language mode manager.
*
* @var \Drupal\codemirror_editor\CodemirrorModeManagerInterface
*/
protected $modeManager;
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'codemirror_editor_settings';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'codemirror_editor.settings',
];
}
/**
* Constructs a \Drupal\system\ConfigFormBase object.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The factory for configuration objects.
* @param \Drupal\Core\Cache\CacheTagsInvalidatorInterface $cache_tags_invalidator
* The cache tags invalidator.
* @param \Drupal\codemirror_editor\CodemirrorModeManagerInterface $mode_manager
* The language mode manager.
*/
public function __construct(ConfigFactoryInterface $config_factory, CacheTagsInvalidatorInterface $cache_tags_invalidator, CodemirrorModeManagerInterface $mode_manager) {
parent::__construct($config_factory);
$this->cacheTagsInvalidator = $cache_tags_invalidator;
$this->modeManager = $mode_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('cache_tags.invalidator'), $container
->get('plugin.manager.codemirror_mode'));
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$settings = $this
->config('codemirror_editor.settings')
->get();
$form['cdn'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Load the library from CDN'),
'#default_value' => $settings['cdn'],
];
$form['minified'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Use minified version of the library'),
'#default_value' => $settings['minified'],
];
$codemirror_themes = static::getCodeMirrorThemes();
$form['theme'] = [
'#type' => 'select',
'#title' => $this
->t('Theme'),
'#options' => $codemirror_themes,
'#default_value' => $settings['theme'],
];
$form['language_modes_wrapper'] = [
'#type' => 'details',
'#title' => $this
->t('Language modes'),
'#open' => TRUE,
];
$header = [
'label' => $this
->t('Mode'),
'mime_types' => [
'data' => $this
->t('Mime types'),
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
],
'dependencies' => $this
->t('Dependencies'),
'usage' => $this
->t('Usage'),
];
$options = [];
$definitions = $this->modeManager
->getDefinitions();
foreach ($definitions as $mode => $definition) {
$url = Url::fromUri(sprintf('https://codemirror.net/mode/%s/index.html', $mode), [
'attributes' => [
'target' => '_blank',
],
]);
$dependency_labels = [];
foreach ($definition['dependencies'] as $dependency) {
$dependency_labels[] = $definitions[$dependency]['label'];
}
$options[$mode] = [
'label' => Link::fromTextAndUrl($definition['label'], $url),
'mime_types' => implode(', ', $definition['mime_types']),
'dependencies' => implode(', ', $dependency_labels),
'usage' => implode(', ', $definition['usage']),
];
}
$form['language_modes_wrapper']['language_modes'] = [
'#type' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#default_value' => array_fill_keys($settings['language_modes'], TRUE),
'#suffix' => $this
->t('Language modes required by modules are always loaded.'),
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$values = $form_state
->getValues();
$this
->config('codemirror_editor.settings')
->set('cdn', $values['cdn'])
->set('minified', $values['minified'])
->set('theme', $values['theme'])
->set('language_modes', array_values(array_filter($values['language_modes'])))
->save();
// Invalidate discovery caches to rebuild asserts.
$this->cacheTagsInvalidator
->invalidateTags([
'library_info',
]);
parent::submitForm($form, $form_state);
}
/**
* Returns available CodeMirror themes.
*
* @return array
* CodeMirror themes.
*/
protected static function getCodeMirrorThemes() {
return [
'default' => 'Default',
'3024-day' => '3024 day',
'3024-night' => '3024 night',
'abcdef' => 'ABCDEF',
'ambiance' => 'Ambiance',
'base16-dark' => 'Base16 dark',
'base16-light' => 'Base16 light',
'bespin' => 'Bespin',
'blackboard' => 'Black board',
'cobalt' => 'Cobalt',
'colorforth' => 'Color forth',
'darcula' => 'Darcula',
'dracula' => 'Dracula',
'duotone-dark' => 'Duotone dark',
'eclipse' => 'Eclipse',
'elegant' => 'Elegant',
'erlang-dark' => 'Erlang dark',
'gruvbox-dark' => 'Gruvbox dark',
'hopscotch' => 'Hopscotch',
'icecoder' => 'Ice coder',
'idea' => 'Idea',
'isotope' => 'Isotope',
'lesser-dark' => 'Lesser dark',
'liquibyte' => 'Liquibyte',
'lucario' => 'Lucario',
'material' => 'Material',
'mbo' => 'MBO',
'mdn-like' => 'MDN like',
'midnight' => 'Midnight',
'monokai' => 'Monokai',
'neat' => 'Neat',
'neo' => 'Neo',
'night' => 'Night',
'oceanic-next' => 'Oceanic next',
'panda-syntax' => 'Panda syntax',
'paraiso-dark' => 'Paraiso dark',
'paraiso-light' => 'Paraiso light',
'pastel-on-dark' => 'Pastel on dark',
'railscasts' => 'Rails casts',
'rubyblue' => 'Ruby blue',
'seti' => 'Seti',
'shadowfox' => 'Shadow fox',
'solarized-dark' => 'Solarized dark',
'solarized-light' => 'Solarized light',
'the-matrix' => 'The matrix',
'tomorrow-night-bright' => 'Tomorrow night bright',
'tomorrow-night-eighties' => 'Tomorrow night eighties',
'ttcn' => 'TTCN',
'twilight' => 'Twilight',
'vibrant-ink' => 'Vibrant ink',
'xq-dark' => 'XQ dark',
'xq-light' => 'XQ light',
'yeti' => 'Yeti',
'zenburn' => 'Zenburn',
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
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. Overrides UrlGeneratorTrait:: |
|
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:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
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. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
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. | |
SettingsForm:: |
protected | property | The cache tags invalidator. | |
SettingsForm:: |
protected | property | The language mode manager. | |
SettingsForm:: |
public | function |
Form constructor. Overrides ConfigFormBase:: |
|
SettingsForm:: |
public static | function |
Instantiates a new instance of this class. Overrides ConfigFormBase:: |
|
SettingsForm:: |
protected static | function | Returns available CodeMirror themes. | |
SettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
SettingsForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
SettingsForm:: |
public | function |
Form submission handler. Overrides ConfigFormBase:: |
|
SettingsForm:: |
public | function |
Constructs a \Drupal\system\ConfigFormBase object. Overrides ConfigFormBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
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. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |