From df96b43c9427fd1492b0fda48cc0b5a7faa01778 Mon Sep 17 00:00:00 2001 From: florenttorregrosa Date: Wed, 8 Feb 2017 16:51:26 +0100 Subject: [PATCH] Issue #2849759 by Grimreaper, inversed: Undefined index: id in template_preprocess_fieldset() notice --- includes/helpers.inc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/includes/helpers.inc b/includes/helpers.inc index 7d3b1b7..5cc9e9e 100644 --- a/includes/helpers.inc +++ b/includes/helpers.inc @@ -46,7 +46,7 @@ function field_group_validate_css_class($element, FormStateInterface $form_state $form_state_values = $form_state->getValues(); $plugin_name = $form_state->get('plugin_settings_edit'); if (!empty($form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['classes']) && !preg_match('!^[A-Za-z0-9-_ ]+$!', $form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['classes'])) { - Drupal::formBuilder()->setError($element, $form_state, t('The css class must include only letters, numbers, underscores and dashes.')); + $form_state->setError($element, t('The css class must include only letters, numbers, underscores and dashes.')); } } @@ -58,7 +58,16 @@ function field_group_validate_css_class($element, FormStateInterface $form_state function field_group_validate_id($element, FormStateInterface $form_state) { $form_state_values = $form_state->getValues(); $plugin_name = $form_state->get('plugin_settings_edit'); - if (!empty($form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['id']) && !preg_match('!^[A-Za-z0-9-_]+$!', $form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['id'])) { - Drupal::formBuilder()->setError($element, $form_state, t('The id must include only letters, numbers, underscores and dashes.')); + $id = $form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['id']; + + if (!empty($id) && !preg_match('!^[A-Za-z0-9-_]+$!', $id)) { + $form_state->setError($element, t('The id must include only letters, numbers, underscores and dashes.')); + } + + if (isset($form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['description'])) { + $description = $form_state_values['fields'][$plugin_name]['settings_edit_form']['settings']['description']; + if (!empty($description) && empty($id)) { + $form_state->setError($element, t('The id is required if there is a description.')); + } } } \ No newline at end of file -- 1.9.1