Index: citizenspeak.theme.php =================================================================== --- citizenspeak.theme.php (revision 1068) +++ citizenspeak.theme.php (revision 1069) @@ -23,15 +23,25 @@ // Generate form, should probably be handled by forms.module $form = ''; foreach (array('name', 'email', 'address', 'city') as $field) { - $form .= form_textfield(t(ucfirst($field)), $field, $edit[$field], '', '', null, null, true); + if (variable_get('citizenspeak_show_'.$field, 1)) { + $form .= form_textfield(t(ucfirst($field)), $field, $edit[$field], '', '', null, null, true); + } } - $state_array = array('', 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'); - $form .= form_select(t('State'), 'state', $edit['state'], drupal_map_assoc($state_array), null, 0, false, true); + if (variable_get('citizenspeak_show_state', 1)) { + $state_array = array('', 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'); + $form .= form_select(t('State'), 'state', $edit['state'], drupal_map_assoc($state_array), null, 0, false, true); + } - $form .= form_textfield(t('ZIP Code'), 'zip', $edit['zip'], 5, 5, null, null, true); - $form .= form_textfield(t('Phone'), 'phone', $edit['phone'], '', '', null, null, false); - $form .= form_textfield(t('Fax'), 'fax', $edit['fax'], '', '', null, null, false); + if (variable_get('citizenspeak_show_zip', 1)) { + $form .= form_textfield(t('ZIP Code'), 'zip', $edit['zip'], 5, 5, null, null, true); + } + if (variable_get('citizenspeak_show_phone', 1)) { + $form .= form_textfield(t('Phone'), 'phone', $edit['phone'], '', '', null, null, false); + } + if (variable_get('citizenspeak_show_fax', 1)) { + $form .= form_textfield(t('Fax'), 'fax', $edit['fax'], '', '', null, null, false); + } $form .= form_textarea(t('Personal Statement'), 'personal_statement', $edit['personal_statement'], 60, 20, t('This will be included in the email sent.')); // Only make it a form if the node has been saved Index: citizenspeak.module =================================================================== --- citizenspeak.module (revision 1068) +++ citizenspeak.module (revision 1069) @@ -145,6 +145,13 @@ $output .= form_group(t("Reminder Emails"), $reminders, t("Campaign creators can be sent emails to remind them to download their reports.")); + // Field configuration + $fields = ''; + foreach (array('name', 'email', 'address', 'city', 'state', 'zip', 'phone', 'fax') as $field) { + $fields .= form_checkbox(t(ucfirst($field)), 'citizenspeak_show_'.$field, 1, variable_get('citizenspeak_show_'.$field, 1)); + } + $output .= form_group(t("Fields to display"), $fields, t("The fields to display in your campaigns.")); + return $output; } // function citizenspeak_settings Index: citizenspeak.lib.php =================================================================== --- citizenspeak.lib.php (revision 1074) +++ citizenspeak.lib.php (revision 1077) @@ -32,32 +32,32 @@ function _citizenspeak_validate_participation($edit) { $errors = false; - if ($edit['name'] == "") { + if ($edit['name'] == "" && variable_get('citizenspeak_show_name', 1)) { form_set_error('name', t('You must enter your name')); $errors = true; } - if (!valid_email_address($edit['email'])) { + if (!valid_email_address($edit['email']) && variable_get('citizenspeak_show_city', 1)) { form_set_error('email', t('You must provide a valid email address')); $errors = true; } - if ($edit['address'] == "") { + if ($edit['address'] == "" && variable_get('citizenspeak_show_address', 1)) { form_set_error('name', t('You must enter your address')); $errors = true; } - if ($edit['city'] == "") { + if ($edit['city'] == "" && variable_get('citizenspeak_show_city', 1)) { form_set_error('city', t('You must enter your city')); $errors = true; } - if ($edit['state'] == "") { + if ($edit['state'] == "" && variable_get('citizenspeak_show_state', 1)) { form_set_error('state', t('You must enter your state')); $errors = true; } - if (!_citizenspeak_valid_zipcode($edit['zip'])) { + if (!_citizenspeak_valid_zipcode($edit['zip']) && variable_get('citizenspeak_show_zip', 1)) { form_set_error('zip', t('You must provide a 5 digit ZIP code')); $errors = true; }