Hook_form_alter aiuto con sintassi

4 contenuti / 0 new
Ultimo contenuto
Hook_form_alter aiuto con sintassi

Scopo:
in base ai dati inseriti, far comparire l'asterisco per dato richiesto al form "descrizione" on the fly, prima del submit del contenuto. (L'asterisco è solo estetico)

Di seguito il codice che ho scritto fa comparire l'asterisco al campo descrizione solo se sono verificati entrambi i controlli, come se ci fosse un "AND" tra i due controlli ":input", invece a me serve un OR, ossia o uno o l'altro o tutti e due.

function rso_modulo_form_alter (&$form, &$form_state, $form_id) {
$form['field_descrizione']['#states'] = array(
'required' => array(
array(':input[name="field_taxonomy[und][0][tid]"]' => array(array('value' => '197'),
array('value' => '215')),
array(':input[name="field_boolean[und]"]' => array('value' => 1))),
),);}

Drupal Version:

Ciao Mirkozzo, siccome st cercando di capire come inserire del codice a priori odi fare dei controlli come te, mi puoi dire come fare la fase iniziale che non ho capito?
Per esempio vorrei far uscire in automatico la descrizione del mese attuale in un campo lista

grazie

Gaetano

Ti anticipo che sono un principiante,

io utilizzo per aiutarmi il comando dpm ($variabile); del modulo devel. Questo ti permette di leggere le variabili degli hook.

Se non ricordo male basta aggiungere "or" tra i due array ... tipo:

function rso_modulo_form_alter (&$form, &$form_state, $form_id) {
  $form['field_descrizione']['#states'] = array(
    'required' => array(
      array(':input[name="field_taxonomy[und][0][tid]"]' => array(array('value' => '197'),
      'or',
      array('value' => '215')),
      array(':input[name="field_boolean[und]"]' => array('value' => 1))),
    ),);
}