class VarbaseBootstrapParagraphsSettingsForm in Varbase Bootstrap Paragraphs 8.7
Same name and namespace in other branches
- 8.4 src/Form/VarbaseBootstrapParagraphsSettingsForm.php \Drupal\varbase_bootstrap_paragraphs\Form\VarbaseBootstrapParagraphsSettingsForm
- 8.5 src/Form/VarbaseBootstrapParagraphsSettingsForm.php \Drupal\varbase_bootstrap_paragraphs\Form\VarbaseBootstrapParagraphsSettingsForm
- 8.6 src/Form/VarbaseBootstrapParagraphsSettingsForm.php \Drupal\varbase_bootstrap_paragraphs\Form\VarbaseBootstrapParagraphsSettingsForm
- 9.0.x src/Form/VarbaseBootstrapParagraphsSettingsForm.php \Drupal\varbase_bootstrap_paragraphs\Form\VarbaseBootstrapParagraphsSettingsForm
Provides form for managing module settings.
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\varbase_bootstrap_paragraphs\Form\VarbaseBootstrapParagraphsSettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of VarbaseBootstrapParagraphsSettingsForm
1 string reference to 'VarbaseBootstrapParagraphsSettingsForm'
File
- src/
Form/ VarbaseBootstrapParagraphsSettingsForm.php, line 13
Namespace
Drupal\varbase_bootstrap_paragraphs\FormView source
class VarbaseBootstrapParagraphsSettingsForm extends ConfigFormBase {
/**
* Get the from ID.
*/
public function getFormId() {
return 'varbase_bootstrap_paragraphs_settings';
}
/**
* Get the editable config names.
*/
protected function getEditableConfigNames() {
return [
'varbase_bootstrap_paragraphs.settings',
];
}
/**
* Build the form.
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('varbase_bootstrap_paragraphs.settings');
$form['settings']['background_colors'] = [
'#type' => 'textarea',
'#default_value' => $config
->get('background_colors'),
'#title' => $this
->t('Available CSS styles (classes) for Varbase Bootstrap Paragraphs'),
'#description' => $this
->t('
<p>The list of CSS classes available as background styles for Varbase Bootstrap Pargaraphs. Enter one value per line, in the format <b>key|label</b> where <em>key</em> is the CSS class name (without the .), and <em>label</em> is the human readable name of the style in administration forms.</p><p>These styles are defined and can be customized in <code>vbp-colors</code> library that is defined in <code>varbase_bootstrap_paragraphs/varbase_bootstrap_paragraphs.libraries.yml</code>.</p><p>To customize the styles to fit your brand with your own theme, do the following:
<ol>
<li>Copy the SCSS (<code>varbase_bootstrap_paragraphs/scss/theme/vbp-colors.theme.scss</code>) and CSS (<code>varbase_bootstrap_paragraphs/css/theme/vbp-colors.theme.css</code>) files to your own theme.</li>
<li>Override or replace the <code>vbp-colors</code> library in your own frontend theme. You will need to edit <code>YOURTHEME.libraries.yml</code> and <code>YOURTHEME.info.yml</code>. Refer to <a href="@link">the documentation manual for overriding libraries in your theme</a> for more details.</li>
<li>Edit the SCSS/CSS files in your own theme to customize the styles as you wish. You will notice that the admin form will load your styles in the available "Background color" options for Paragraphs.</li>
</ol>
</p>', [
'@link' => ' https://www.drupal.org/docs/8/theming-drupal-8/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-theme#override-extend',
]),
'#cols' => 60,
'#rows' => 10,
];
return parent::buildForm($form, $form_state);
}
/**
* Submit Form.
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
try {
// Update the Allowed list text values.
$newAllowedListTextValues = self::optionsExtractAllowedListTextValues($form_state
->getValue('background_colors'));
$fieldStorage = FieldStorageConfig::loadByName('paragraph', 'bp_background');
$fieldStorage
->setSetting('allowed_values', $newAllowedListTextValues);
$fieldStorage
->save();
} catch (FieldStorageDefinitionUpdateForbiddenException $e) {
$this
->messenger()
->addError($e
->getMessage());
$form_state
->setRebuild();
return;
} catch (Exception $e) {
$this
->messenger()
->addError($e
->getMessage());
$form_state
->setRebuild();
return;
}
$config = $this
->config('varbase_bootstrap_paragraphs.settings');
$config
->set('background_colors', $form_state
->getValue('background_colors'));
$config
->save();
parent::submitForm($form, $form_state);
}
/**
* Validate Form.
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
$values = self::optionsExtractAllowedListTextValues($form_state
->getValue('background_colors'));
if (!is_array($values)) {
$form_state
->setErrorByName('background_colors', $this
->t('Allowed values list: invalid input.'));
}
else {
// Check that keys are valid for the field type.
foreach ($values as $key => $value) {
if (mb_strlen($key) > 255) {
$form_state
->setErrorByName('background_colors', $this
->t('Allowed values list: each key must be a string at most 255 characters long.'));
break;
}
}
}
}
/**
* Parses a string of 'allowed values' into an array.
*
* @param string $string
* The list of allowed values in string format described in
* optionsExtractAllowedValues().
*
* @return arraynull
* The array of extracted key/value pairs, or NULL if the string is invalid.
*
* @see optionsExtractAllowedListTextValues()
*/
public function optionsExtractAllowedListTextValues($string) {
$values = [];
$list = explode("\n", $string);
$list = array_map('trim', $list);
$list = array_filter($list, 'strlen');
foreach ($list as $text) {
$value = $key = FALSE;
// Check for an explicit key.
$matches = [];
if (preg_match('/(.*)\\|(.*)/', $text, $matches)) {
// Trim key and value to avoid unwanted spaces issues.
$key = trim($matches[1]);
$value = trim($matches[2]);
$values[$key] = $value;
}
else {
return NULL;
}
}
return $values;
}
}
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. | |
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. | |
VarbaseBootstrapParagraphsSettingsForm:: |
public | function |
Build the form. Overrides ConfigFormBase:: |
|
VarbaseBootstrapParagraphsSettingsForm:: |
protected | function |
Get the editable config names. Overrides ConfigFormBaseTrait:: |
|
VarbaseBootstrapParagraphsSettingsForm:: |
public | function |
Get the from ID. Overrides FormInterface:: |
|
VarbaseBootstrapParagraphsSettingsForm:: |
public | function | Parses a string of 'allowed values' into an array. | |
VarbaseBootstrapParagraphsSettingsForm:: |
public | function |
Submit Form. Overrides ConfigFormBase:: |
|
VarbaseBootstrapParagraphsSettingsForm:: |
public | function |
Validate Form. Overrides FormBase:: |