Drupal FormAPI, assegnare classi ad attributi nelle form

Mer, 07/10/2009 - 12:49

Quante volte mi sono ritrovato a dover aggiungere delle classi ad una form tramite codice con Drupal 6.
E' un'operazione comune quando si fa theming, poichè molte volte capita di aver bisogno di una personalizzazione maggiore degli elementi di una form.
Implementiamo quindi nel nostro modulo un hook_form_alter, selezioniamo la form corretta e assegnamo un valore per la chiave '#attributes'.

function mymodule_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    case 'my_form_id':
      $form[myfieldset]['#attributes'] = array('class' => 'new_class');
    break;
  }
}

my_form_id è il valore del campo nascosto form_id che avete nella vostra pagina che mostra la form (è sufficiente guardare il sorgente della pagina per trovarlo).

my_fieldset è il fieldset al quale volere aggiungere la classe.

Non sapete precisamente come si chiamano i vostri valori e di conseguenza non sapete dove posizionare l'array '#attributes'?
Se avete attivo il modulo devel, è sufficiente printare in questo modo l'array $form:

dpm($form);

Se non avete attivo devel, il vecchio print_r vi aiuta:

echo "<pre>".print_r($form,1)."</pre>";

Ora si può lavorare sul css senza problemi.

Commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • tags HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

By submitting this form, you accept the Mollom privacy policy.