/** * Implements hook_form_FORM_ID_alter(). */ function actency_module_form_config_pages_configuration_modules_et_options_form_alter(&$form, FormStateInterface $form_state, $form_id) { unset($form['field_activation_du_service_dete']['widget']['#default_value']); $form['#validate'][] = '_check_ai_service_required_field'; } /** * Validation callback for detection service field. */ function _check_ai_service_required_field($form, FormStateInterface $form_state) { $field_controls = [ 'field_activation_du_service_dete' => 'field_activation_du_module_assis', 'field_activation_du_service_sugg' => 'field_activation_du_service_dete', 'field_activation_du_service_eval' => 'field_activation_du_service_dete', 'field_delai_maximum_pour_soumett' => 'field_activation_du_service_eval', 'field_aide_memoire_fonction_asse' => 'field_activation_du_service_dete', 'field_aide_memoire_fonction_prof' => 'field_activation_du_service_dete', 'field_sujet_attente_definition' => 'field_activation_du_service_dete', 'field_texte_attente_definition' => 'field_activation_du_service_dete', 'field_sujet_attente_resultat' => 'field_activation_du_service_eval', 'field_texte_attente_resultat' => 'field_activation_du_service_eval', 'field_sujet_attente_traitement' => 'field_activation_du_service_eval', 'field_text_attente_traitement' => 'field_activation_du_service_eval', ]; foreach ($field_controls as $dependent_field => $control_field) { $field_value = $form_state->getValue($control_field)[0]['value']; if (!$field_value) { $form_errors = $form_state->getErrors(); $form_state->clearErrors(); $dependent_field_value = $dependent_field.'][0][value'; $dependent_field_uri = $dependent_field.'][0][uri'; $dependent_field_title = $dependent_field.'][0][title'; if(isset($form_errors[$dependent_field_value])){ unset($form_errors[$dependent_field_value]); }elseif (isset($form_errors[$dependent_field_uri])){ unset($form_errors[$dependent_field_uri], $form_errors[$dependent_field_title]); }else{ unset($form_errors[$dependent_field]); } foreach ($form_errors as $name => $error_message) { $form_state->setErrorByName($name, $error_message); } } } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter