Drupal - Circonda elementi webform specifici con un div
-
28-10-2019 - |
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?
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>';
}