Ciao a tutti, sto diventando matto!! e sicuramente ho perso qualcosa tra le varie guide!!!
Ho 2 campi (per ora ma poi saranno 3) in aggiunta al profilo degli utenti, questi (per ora parliamo di 2) campi nome_passeggero Cognome_passeggero devo avere una funzione del genere:
- se sono vuoti tutti e due non devono essere obbligatori.
- se uno dei due è pieno, l'altro vuoto deve essere obbligatorio
ho provato ad implementare questo
<?php
function validate_passeggeri_user_profile_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'user_profile_form':
global $user;
dpm($form);
$passeggero1 = 0;
if (isset($form['#user']->field_nome_passeggero['und'][0]['value'])) {
unset($form['field_nome_passeggero']['und'][0]['value']['#default_value']);
echo 'nome pieno';
++$passeggero1;
}
if (isset($form['#user']->field_cognome_passeggero['und'][0]['value'])) {
unset($form['field_cognome_passeggero']['und'][0]['value']['#default_value']);
echo 'cognome pieno';
++$passeggero1;
}
if ($passeggero1 == '0' || $passeggero1 == '2') {
return $form;
} else {
form_set_error($form, t('Errore'));
}
break;
}
}
?>
gli alert di errore funzionano, ma comunque il dato viene salvato nel database (cosa che ovviamente non deve accadere).
Avete qualche consiglio?
Hai provato a guardare https://www.drupal.org/project/conditional_fields ?
Si un bellisimo modulo, ma non funziona!!!! ci sono ancora patch aperte, funziona sola la funzione Visibile/ invisibile che già uso. Ecco perchè sto tentando con gli hook