/**
* 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);
}
}
}
}