public function ManageComponentAttributesForm::validateForm in Layout Builder Component Attributes 1.2.x
Same name and namespace in other branches
- 1.0.x src/Form/ManageComponentAttributesForm.php \Drupal\layout_builder_component_attributes\Form\ManageComponentAttributesForm::validateForm()
- 1.1.x src/Form/ManageComponentAttributesForm.php \Drupal\layout_builder_component_attributes\Form\ManageComponentAttributesForm::validateForm()
Form validation handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormBase::validateForm
File
- src/
Form/ ManageComponentAttributesForm.php, line 274
Class
- ManageComponentAttributesForm
- Provides a form for managing block attributes.
Namespace
Drupal\layout_builder_component_attributes\FormCode
public function validateForm(array &$form, FormStateInterface $form_state) {
$values = $form_state
->getValues();
// Validate block attributes.
if (isset($values['block_attributes']['id']) && !$this
->validateCssClass($values['block_attributes']['id'])) {
$form_state
->setError($form['block_attributes']['id'], $this
->t('Element ID must be a valid CSS ID'));
}
if (isset($values['block_attributes']['class'])) {
$classes = explode(' ', $values['block_attributes']['class']);
foreach ($classes as $class) {
if (!$this
->validateCssClass($class)) {
$form_state
->setError($form['block_attributes']['class'], $this
->t('Classes must be valid CSS classes'));
break;
}
}
}
if (isset($values['block_attributes']['style'])) {
$cssLinter = new Linter();
$style_validity = $cssLinter
->lintString('.selector {' . $values['block_attributes']['style'] . '}');
if (!$style_validity) {
$form_state
->setError($form['block_attributes']['style'], $this
->t('Inline styles must be valid CSS'));
}
}
if (isset($values['block_attributes']['data'])) {
$data_attributes = preg_split('/\\R/', $values['block_attributes']['data']);
foreach ($data_attributes as $data_attribute) {
if (empty($data_attribute)) {
break;
}
$data_attribute = explode('|', $data_attribute);
if (substr($data_attribute[0], 0, 5) !== "data-") {
$form_state
->setError($form['block_attributes']['data'], $this
->t('Data attributes must being with "data-"'));
}
}
}
// Validate block title attributes.
if (isset($values['block_title_attributes']['id']) && !$this
->validateCssClass($values['block_title_attributes']['id'])) {
$form_state
->setError($form['block_title_attributes']['id'], $this
->t('Element ID must be a valid CSS ID'));
}
if (isset($values['block_title_attributes']['class'])) {
$classes = explode(' ', $values['block_title_attributes']['class']);
foreach ($classes as $class) {
if (!$this
->validateCssClass($class)) {
$form_state
->setError($form['block_title_attributes']['class'], $this
->t('Classes must be valid CSS classes'));
break;
}
}
}
if (isset($values['block_title_attributes']['style'])) {
$cssLinter = new Linter();
$style_validity = $cssLinter
->lintString('.selector {' . $values['block_title_attributes']['style'] . '}');
if (!$style_validity) {
$form_state
->setError($form['block_title_attributes']['style'], $this
->t('Inline styles must be valid CSS'));
}
}
if (isset($values['block_title_attributes']['data'])) {
$data_attributes = preg_split('/\\R/', $values['block_title_attributes']['data']);
foreach ($data_attributes as $data_attribute) {
if (empty($data_attribute)) {
break;
}
$data_attribute = explode('|', $data_attribute);
if (substr($data_attribute[0], 0, 5) !== "data-") {
$form_state
->setError($form['block_title_attributes']['data'], $this
->t('Data attributes must being with "data-"'));
}
}
}
// Validate block content attributes.
if (isset($values['block_content_attributes']['id']) && !$this
->validateCssClass($values['block_content_attributes']['id'])) {
$form_state
->setError($form['block_content_attributes']['id'], $this
->t('Element ID must be a valid CSS ID'));
}
if (isset($values['block_content_attributes']['class'])) {
$classes = explode(' ', $values['block_content_attributes']['class']);
foreach ($classes as $class) {
if (!$this
->validateCssClass($class)) {
$form_state
->setError($form['block_content_attributes']['class'], $this
->t('Classes must be valid CSS classes'));
break;
}
}
}
if (isset($values['block_content_attributes']['style'])) {
$cssLinter = new Linter();
$style_validity = $cssLinter
->lintString('.selector {' . $values['block_content_attributes']['style'] . '}');
if (!$style_validity) {
$form_state
->setError($form['block_content_attributes']['style'], $this
->t('Inline styles must be valid CSS'));
}
}
if (isset($values['block_content_attributes']['data'])) {
$data_attributes = preg_split('/\\R/', $values['block_content_attributes']['data']);
foreach ($data_attributes as $data_attribute) {
if (empty($data_attribute)) {
break;
}
$data_attribute = explode('|', $data_attribute);
if (substr($data_attribute[0], 0, 5) !== "data-") {
$form_state
->setError($form['block_content_attributes']['data'], $this
->t('Data attributes must being with "data-"'));
}
}
}
}