logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Utilizzo di #states in hook_form_alter

22/02/2025, by Anonimo (non verificato)

Ciao. Sto cercando di risolvere un problema riguardante l'implementazione delle dipendenze dei campi in Drupal 7. Da numerose domande, è emerso che è ottimale utilizzare #states nel settimo Drupal, invece dei campi condizionali. Come si è rivelato, un altro ostacolo per questo modulo è il problema delle dipendenze quando si utilizza il modulo multi_step.

In generale, ho capito come funziona #states. Ma ho capito solo come funziona nella creazione del mio modulo hook_form. Tuttavia, il mio obiettivo è quello di modificare un modulo già esistente per l'aggiunta di contenuti.

hook_form_ID_FORM_alter

Lo sto usando. Trovo gli array tramite dsm($form);
Ma non riesco a capire come scrivere correttamente le dipendenze.

Ad esempio, nella forma creata l'ho fatto così:

<?php $form['radio_type'] = array(
    
'#type' => 'radios',
    
'#options' => array(
      
'0'   => t('Appare un gruppo a discesa'),
      
'1' => t('Campo di testo non attivo'),
      
'2'      => t('Scompaiono le caselle di controllo'),
    ),
    
'#title' => t('Seleziona un'azione')
  );
  
  
$form['grupa'] = array(
    
'#type' => 'fieldset',
    
'#title' => t('Gruppo'),
    
'#states' => array(
      
'visible' => array(
        
':input[name="radio_type"]' => array('value' => '0'),
      ),
    ),
  );
?>

 

Nella funzione hook_form_alter (per ora lo scrivo nel template)
Sto cercando di fare qualcosa del genere:

<?phpfunction theme_form_zavedeniya_node_form_alter(&$form, &$form_state$form_id) {
   
dpm($form); 
   
$form['body']['und']['0']['value']['#states']  = array(
  
'invisible' => array(
    
':input[name="field_sity2"]' => array('value' => '56'),
  ),
);
}
?>

 

Cioè, faccio in modo che selezionando nel campo field_sity2 (collegamento al termine) il valore 56 faccia scomparire il campo body.
In generale, nulla funziona. Ho provato in vari modi, ma sembra che non sia mai riuscito a farlo funzionare correttamente. Chiedo consiglio.

P.S. Potreste anche consigliare cosa utilizzare per creare un modulo multi-step per la creazione di contenuti con campi dipendenti. E in futuro, per modificare il contenuto, sarebbe possibile modificarlo tramite schede, e non passo dopo passo.