Domanda

come descrive il titolo, devo disegnare un modulo web e per questo ho bisogno di racchiudere campi specifici in div per dare loro le loro proprietà CSS e non ho idea di come dovrei farlo.

Ho rilevato il modulo con hook_form_alter ma non ho idea di cosa fare dopo.

Qualche aiuto?

È stato utile?

Soluzione

Nel tuo file template.php dei temi devi ottenere l'ID del form e poi puoi fare qualcosa del genere:

function phptemplate_webform_form_FORM_ID ($form) {
  $form['#prefix'] = '<div class="CLASS NAME">';
  $form['#suffix'] = '</div>';
  return _phptemplate_callback('webform_form_FORM_ID', array('form' => $form));
}

Sostituisci FORM_ID con l'ID del modulo.

<”EDIT

Per aggiungerli a campi specifici basta fare (qualcosa del genere) questo:

$form['ELEMENT_NAME']['#prefix'] = '<div class="CLASS NAME">';
$form['ELEMENT_NAME']['#suffix'] = '</div>';

Non ho tempo per provarlo, ma sostituisci ELEMENT_NAME con l'elemento e questo dovrebbe risolvere il tuo problema.C'è una buona pagina qui: http://drupal.org/node/79086

Altri suggerimenti

Puoi utilizzare #field_prefix e #field_suffix per racchiudere il campo con qualsiasi elemento HTML.Vedi l'esempio di seguito:

    function auworks_form_alter(&$form, $form_state, $form_id) {
      switch($form_id) {
        case 'webform_client_form_1':
          $form['submitted']['title']['#field_suffix'] = '<span class="field-suffix">#</span>';
          break;
      }
    }

Fammi sapere come vai ...

Inoltre: nel caso in cui desideri aggiungere div contenenti al pulsante di invio del modulo web, ecco un hook che ti aiuterà:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    if ($form['#form_id'] === 'webform_client_form_YOURWEBFORMID') {
        $form_structure = &$form['submitted'];

        $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
        $form['actions']['submit']['#suffix'] = '</div>';
    }

}

Se desideri applicarlo a tutti i moduli web, lascia semplicemente il condizionale, in questo modo:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    $form_structure = &$form['submitted'];

    $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
    $form['actions']['submit']['#suffix'] = '</div>';    
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top