form orizzontale

4 contenuti / 0 new
Ultimo contenuto
form orizzontale

Chiedo aiuto o consiglio su come sviluppare un form orizzontale. Ho visto la guida di Gianni Giusti e l'analoga documentazione di esempio sul sito ufficiale drupal.org. Ciò che non mi riesce di realizzare è una serie di righe di campi di input (una tabella) all'interno di un fieldset.
Il problema è quindi di costruire un fieldset intorno ad una matrice di campi di input.
Qualche idea?

Detesto i form tabellari in drupal perchè sono macchinosi da costruire, comunque ecco qui il codice:
1) hook_theme

<?php
/**
* Implementation of hook_theme().
*/
function candidati_theme() {
  return array(
   
'candidati_drawsimpleform' => array(
     
'arguments' => array('form' => NULL),
    ),
  );
}
?>

2) funzione per il form
<?php
function candidati_simple_form() {
global
$user, $language;
 
$form['#validate'][] = 'candidati_simpleform_validate';
 
$form['#submit'][] = 'candidati_simpleform_submit';
$form['email'] = array(
   
'#type' => 'textfield',
   
'#title' => t('EMail'),
  );
 
$form['cognome'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Cognome'),
  );
 
$form['nome'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Nome'),
  );
 
$form['privacytext'] = array(
   
'#type' => 'textarea',
   
'#default_value' => $texareaprivacy,
  );
 
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t("Prosegui"),
  );
 
$form['#theme'] = 'candidati_drawsimpleform';
  return
$form;
}
?>

3) hook_validate
<?php
function candidati_simpleform_validate($form, &$form_state) {
 
$cognome = $form_state['values']['cognome'];
  if (
strlen("$cognome")<3) { form_set_error('cognome', t("Inserire un cognome corretto'")); }
}
?>

4) hook_theme
<?php
function theme_candidati_drawsimpleform($form) {
    
$rows[] = array(
   
drupal_render($form['data_gestione']),
   
drupal_render($form['data_personal']),
   
drupal_render($form['data_personal_segnaposto']),
     );
    
$rows[] = array(
    array(
'data' => drupal_render($form['privacy']), 'colspan' => 3)
     );
   
$output .= drupal_render($form);
   
$output .= theme('table', array(), $rows);
    return
$output;
}
?>

Dovrebbe essere tutto. Ciao

Ciao danzisiweb, ti ringrazio per la risposta.
Peraltro io chiedevo non già o non solo la costruzione di una disposizione tabellare dei campi del form ma anche soprattutto la possibilità di far uso, insiema con la tabella, del fieldset: mi piacerebbe che alcune righe della tabella fossero evidenziate o contornate dal box del fieldset, magari collassabile.
Grazie, ciao

Io in arca24.ch/candidati e in drupal in particolare non sono riuscita ad utilizzare contemporaneamente fieldset e temizzazione, ma una costruzione con dei markup o item, non so provaci un po :)