class HidePreviewConfigForm in Hide Preview Button 8
This class renders and manages the configuration form of the module.
@package Drupal\hide_preview\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\hide_preview\Form\HidePreviewConfigForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of HidePreviewConfigForm
1 file declares its use of HidePreviewConfigForm
- HidePreviewTest.php in src/
tests/ src/ Unit/ HidePreviewTest.php
1 string reference to 'HidePreviewConfigForm'
File
- src/
Form/ HidePreviewConfigForm.php, line 13
Namespace
Drupal\hide_preview\FormView source
class HidePreviewConfigForm extends ConfigFormBase {
const FORM_ID = 'hide_preview_config_form';
/**
* {@inheritdoc}
*/
public function getFormId() {
return self::FORM_ID;
}
/**
* Builds and returns the configuration form.
*
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
$config = $this
->config('hide_preview.settings');
$formNames = $config
->get('hide_preview.form_names');
if (empty($formNames)) {
$formnames = '';
}
else {
$formNames = implode(PHP_EOL, $formNames);
}
$form['form_names'] = [
'#type' => 'textarea',
'#title' => $this
->t('Form names'),
'#default_value' => $formNames,
'#description' => $this
->t("<ul><li>Write only one form name per line</li>\n <li>Do not use comma as a separator</li>\n <li>Use either a form name as a string or a regular expression.<ul>\n <li>Check if the <i>form_id</i> begins with the pattern \n <i>contact_message_</i></li>\n <li>Check if the <i>form_id</i> matches the regexp \n <i>/contact_message_*/</i></li>\n </ul></ul>"),
'#required' => FALSE,
];
return $form;
}
/**
* Validates the users's input.
*
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
$formNames = $form_state
->getValue('form_names');
$formNames = $this
->multiline2Array($formNames);
foreach ($formNames as &$name) {
$name = trim($name);
preg_match('/[^\\w]+/', $name, $matches);
if (count($matches)) {
if (@preg_match($name, NULL) === FALSE) {
$form_state
->setErrorByName('form_names', $this
->t('Form name "%name" contains non wordy characters and is
not a regexp.', [
'%name' => $name,
]));
}
}
}
parent::validateForm($form, $form_state);
}
/**
* Handles the post validation process.
*
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$formNames = $form_state
->getValue('form_names');
$formNames = $this
->multiline2Array($formNames);
$config = $this
->config('hide_preview.settings');
$config
->set('hide_preview.form_names', $formNames);
$config
->save();
parent::submitForm($form, $form_state);
}
/**
* Get a string from a textarea and set every new line in an array.
*
* @param string $multiline
* A multi-line string from a textarea.
*
* @return array
* Returns all the lines of the string as an array.
*/
public function multiline2Array($multiline = '') {
$array = preg_split("/\r\n/", $multiline);
$array = array_filter($array, [
$this,
'emptyStringFilter',
]);
return $array;
}
/**
* Returns the editable config names.
*
* @return array
* Returns an array of the editable config names.
*/
protected function getEditableConfigNames() {
return [
'hide_preview.settings',
];
}
/**
* Filters empty and null values but not 0.
*
* @param mixed $value
* Array value to be filtered.
*
* @return bool
* Returns FALSE if the value must be filtered.
*/
private function emptyStringFilter($value) {
return $value !== NULL && $value !== '';
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
13 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 11 |
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. | |
HidePreviewConfigForm:: |
public | function |
Builds and returns the configuration form. Overrides ConfigFormBase:: |
|
HidePreviewConfigForm:: |
private | function | Filters empty and null values but not 0. | |
HidePreviewConfigForm:: |
constant | |||
HidePreviewConfigForm:: |
protected | function |
Returns the editable config names. Overrides ConfigFormBaseTrait:: |
|
HidePreviewConfigForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
HidePreviewConfigForm:: |
public | function | Get a string from a textarea and set every new line in an array. | |
HidePreviewConfigForm:: |
public | function |
Handles the post validation process. Overrides ConfigFormBase:: |
|
HidePreviewConfigForm:: |
public | function |
Validates the users's input. Overrides FormBase:: |
|
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. | |
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. |