array( 'arguments' => array('form'), ), ); } function email_list_menu() { $items = array(); $items['admin/email'] = array( 'title' => 'Email', 'description' => 'Collects a list of emails', 'page callback' => 'drupal_get_form', 'page arguments' => array('email_list_form'), 'access arguments' => array('administer email list'), ); return $items; } function email_list_form(&$form_state) { $form = array(); if (isset($form_state['storage']['name'])) { $form['lastname'] = array( '#type' => 'textfield', '#title' => t('Last name'), ); } else { $form['email'] = array( '#type' => 'textfield', '#title' => t('E-mail address'), '#required' => TRUE, '#description' => t('The email address, duh') ); $form['name'] = array( '#type' => 'textfield', '#title' => t('First name'), '#description' => t('The first name of the person who\'s email address this is'), ); } $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } function email_list_form_validate(&$form, &$form_state) { if (!isset($form_state['storage']['name']) && !valid_email_address($form_state['values']['email'])) { form_error($form['email'], 'This is not a valid email address'); } } function email_list_form_submit($form, &$form_state) { if (!isset($form_state['storage']['name'])) { $form_state['storage']['name'] = $form_state['values']['name']; $form_state['storage']['email'] = $form_state['values']['email']; $form_state['rebuild'] = TRUE; } else { drupal_set_message($form_state['storage']['name'] .' '. $form_state['values']['lastname'] .'\'s email address is '. $form_state['storage']['email']); $form_state['redirect'] = 'admin'; unset($form_state['storage']); } } function theme_email_list_form($form) { $output = ""; if (isset($form['name'])) { //$output .= drupal_render($form['name']); //$output .= drupal_render($form['email']); $form['name']['#size'] = 30; $form['email']['#size'] = 30; unset($form['name']['#title']); unset($form['email']['#title']); $output .= theme( 'table', array( t('Name'), t('E-mail') ), array( array( drupal_render($form['name']), drupal_render($form['email']) ) ) ); } $output .= drupal_render($form); return $output; }