'textfield', '#title' => t('Add user'), '#size' => 40, '#autocomplete_path' => 'user/autocomplete', '#description' => t('Add an individual user to the electoral list'), ); $form['electoral_list']['submit'] = array( '#type' => 'submit', '#value' => t('Add user'), ); $form['nid'] = array('#type' => 'hidden', '#value' => $node->nid); return drupal_get_form('decisions_electoral_list_form', $node->nid); } /****************************/ /* Electoral list functions */ /****************************/ /** * Creates the form for the electoral list. */ function decisions_electoral_list_form($form_state, $nid) { $form = array(); $form['electoral_list'] = array( '#type' => 'fieldset', '#tree' => TRUE, '#title' => t('Administer electoral list'), '#collapsible' => TRUE, '#weight' => 2, '#collapsed' => TRUE, ); $form['electoral_list']['add_user'] = array( '#type' => 'textfield', '#title' => t('Add user'), '#size' => 40, '#autocomplete_path' => 'user/autocomplete', '#description' => t('Add an individual user to the electoral list'), ); $form['electoral_list']['submit'] = array( '#type' => 'submit', '#value' => t('Modify electoral list'), ); $form['electoral_list']['reset'] = array( '#type' => 'button', '#value' => t('Reset electoral list'), ); $form['nid'] = array('#type' => 'hidden', '#value' => $nid); return $form; } /** * Validate changes to the electoral list */ function decisions_electoral_list_form_validate($form, &$form_state) { if ($form_state['values']['op'] == t('Reset electoral list')) { if (user_access('administer decisions')) { db_query('DELETE FROM {decisions_electoral_list} WHERE nid=%d', $form_state['values']['nid']); drupal_set_message(t('Electoral list cleared.')); $node = menu_get_object(); if (_decisions_electoral_list_reset($node)) { drupal_set_message(t('Electoral list reset.')); } return; } } $add_user = $form_state['values']['electoral_list']['add_user']; if ($add_user) { // Check that the user exists if (db_fetch_object(db_query('SELECT uid FROM {users} WHERE name="%s"', $add_user))) { form_set_error('electoral_list][add_user', t('User %user does not exist.', array('%user' => $add_user))); return FALSE; } } else { form_set_error('electoral_list][add_user', t('Please enter a user.')); return FALSE; } } /** * Submit changes to the electoral list */ function decisions_electoral_list_form_submit($form, &$form_state) { $add_user = $form_state['values']['electoral_list']['add_user']; $nid = $form_state['values']['nid']; if ($add_user) { db_query('REPLACE INTO {decisions_electoral_list} (nid, uid) SELECT "%d", u.uid FROM users u WHERE u.name = "%s"', $nid, $add_user); drupal_set_message(t('%user added to electoral list.', array('%user' => $add_user))); drupal_goto('node/'. $nid .'/electoral_list'); } else { drupal_not_found(); } }