'fieldset', '#title' => 'Email Addresses', ); $form['email']['booking_from_email'] = array ( '#type' => 'textfield', '#title' => t('Sender Email Address'), '#description' => t("The email address used as the source of outbound emails."), '#size' => 60, '#maxlength' => 150, '#required' => TRUE, '#default_value' => variable_get('booking_from_email',variable_get('site_mail', ini_get('sendmail_from'))), ); $form['email']['booking_notify_email'] = array ( '#type' => 'textfield', '#title' => t('Notification Email Address(es)'), '#description' => t("The email addresses to which registration notifications are sent."), '#size' => 60, '#maxlength' => 200, '#required' => TRUE, '#default_value' => variable_get('booking_notify_email',variable_get('site_mail', ini_get('sendmail_from'))), ); $form['email']['booking_contact_email'] = array ( '#type' => 'textfield', '#title' => t('Contact Email Address'), '#description' => t("The email address attendees are instructed to contact for additional information."), '#size' => 60, '#maxlength' => 150, '#required' => TRUE, '#default_value' => variable_get('booking_contact_email',variable_get('site_mail', ini_get('sendmail_from'))), ); $form['email']['booking_logistics_email'] = array ( '#type' => 'textfield', '#title' => t('Logistics Email Address'), '#description' => t("The email address used for logistics information."), '#size' => 60, '#maxlength' => 150, '#required' => TRUE, '#default_value' => variable_get('booking_logistics_email',variable_get('site_mail', ini_get('sendmail_from'))), ); $form['attendee'] = array ( '#type' => 'fieldset', '#title' => 'Attendee restrictions', ); $form['attendee']['booking_max_dob'] = array ( '#type' => 'date_select', '#title' => t('Maximum Date of Birth'), '#description' => t("The most recent date of birth you wish to allow into the event."), '#default_value' => variable_get('booking_max_dob','1995-04-15 00:00:00'), '#date_format' => 'd/m/Y', '#date_label_position' => 'within', '#date_year_range' => '-60:-10' ); $form['attendee']['booking_regn_limit'] = array ( '#type' => 'textfield', '#title' => t('Registration limit'), '#description' => t("Total number of attendees permitted."), '#size' => 3, '#maxlength' => 3, '#required' => TRUE, '#default_value' => variable_get('booking_regn_limit','500'), ); $form['paypal'] = array ( '#type' => 'fieldset', '#title' => 'Paypal Settings', ); $form['paypal']['booking_paypal_account'] = array ( '#type' => 'textfield', '#title' => t('Account'), '#default_value' => variable_get('booking_paypal_account', ''), '#description' => '(email address)', ); $form['paypal']['booking_paypal_sandbox'] = array ( '#type' => 'radios', '#title' => t('Sandbox/Development mode'), '#description' => t('When in development mode, the payment gateway will point at sandbox.paypal.com for testing purposes.'), '#options' => array (0 => t('Off'), t('On')), '#default_value' => variable_get('booking_paypal_sandbox', 0), ); $form['misc'] = array ( '#type' => 'fieldset', '#title' => 'Miscellaneous Settings', ); $form['misc']['booking_default_country'] = array ( '#type' => 'select', '#title' => t('Select Default Country'), '#description' => t('Select default country for residential address.'), '#options' => _booking_country_options(), '#default_value' => variable_get('booking_default_country', 'Australia'), ); //TODO: reverse the logic of the values $form['misc']['booking_auto_confirm_email'] = array ( '#type' => 'radios', '#title' => t('Automatic Registration Email'), '#description' => t('Automatically send a confirmation email when a user registers for an event? (If No, email will be sent when status manually changed from Not Coming to Paid).'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_auto_confirm_email', 0), ); $form['misc']['booking_auto_show_on_lists'] = array ( '#type' => 'radios', '#title' => t('Show on lists once booked in?'), '#description' => t('Immediately appear on bookedin/waiting lists even before payment is received?'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_auto_show_on_lists', 0), ); $form['misc']['booking_use_paypal'] = array ( '#type' => 'radios', '#title' => t('Use Paypal?'), '#description' => t('Select whether to use paypal for automatic payment handling, or process payments manually.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_use_paypal', 0), ); $form['misc']['booking_enable_combined_pricing'] = array ( '#type' => 'radios', '#title' => t('Use Combined Pricing?'), '#description' => t('Select whether to combine pricing for married couples (Yes) or have each spouse pay separately (No).'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_combined_pricing', 0), ); $form['misc']['booking_enable_medicare'] = array ( '#type' => 'radios', '#title' => t('Enable Medicare requirement?'), '#description' => t('Select whether to require bookings to enter medicare details.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_medicare', 1), ); $form['misc']['booking_enable_tshirts'] = array ( '#type' => 'radios', '#title' => t('Enable t-shirt information?'), '#description' => t('Select whether to include tshirt sizing in the booking form.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_tshirts', 0), ); $form['misc']['booking_enable_passport'] = array ( '#type' => 'radios', '#title' => t('Enable passport information?'), '#description' => t('Select whether to include passport details in the booking form.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_passport', 0), ); $form['misc']['booking_enable_helpareas'] = array ( '#type' => 'radios', '#title' => t('Enable help area questions?'), '#description' => t('Select whether to include questions about areas people are willing to help with in the booking form.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_helpareas', 0), ); $form['misc']['booking_enable_skills'] = array ( '#type' => 'radios', '#title' => t('Enable special skills information?'), '#description' => t('Select whether to include questions about special skills people have in the booking form.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_skills', 0), ); $form['misc']['booking_enable_roommate'] = array ( '#type' => 'radios', '#title' => t('Enable room-mate selection?'), '#description' => t('Select whether to allow attendees to list a preferred room-mate in the booking form.'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_roommate', 0), ); return system_settings_form($form); } function booking_admin_validate($form, $form_state) { //TODO: put back in when using booking start and end dates /* $booking_start = $form_state['values']['booking_start']; $booking_end = $form_state['values']['booking_end']; //create timestamps for comparison $booking_start_ts = _date_to_ts( $booking_start ); $booking_end_ts = _date_to_ts( $booking_end ); //validate main conference start and end dates if ($booking_start_ts > $booking_end_ts) { form_set_error('booking_date_endbeforestart', t('You have selected a Conference end date that is before the Conference start date.')); } else { variable_set('booking_conference_dates', _date_range_to_string($booking_start, $booking_end)); drupal_set_message( t('Conference date range: "!date"', array ('!date' => _date_range_to_string($booking_start, $booking_end)))); } */ } function booking_manual_email() { global $event; //see http://www.jaypan.com/blog/themeing-drupal-7-forms-tables-checkboxes-or-radios $form = array (); $options = array (); $prefix = t("
Send a manual email to people registered for this event.
"); $email_options_array = array(); $email_options_array['registration'] = 'Manual Registration'; $email_options_array['balance'] = 'Manual Balance Outstanding'; $email_options_array['complete'] = 'Manual Payment Complete'; //add in the custom email types for ($i = 1; $i <= CUSTOM_EMAIL_COUNT; $i++) { $email_options_array['custom' . $i] = variable_get('booking_email_subject_custom' . $i, $event->booking_eventname . ' custom ' . $i); } $form['email-type'] = array( '#type' => 'select', '#title' => t('Email Type'), '#required' => TRUE, '#default_value' => '', '#options' => $email_options_array, ); $header = array ( 'booking_nid' => array('data' => t('Booking ID')), 'booking_name' => array('data' => t('Name')), 'booking_email' => array('data' => t('Email Address')), 'amount_paid' => array('data' => t('Amount Paid To Date')), 'amount_reqd' => array('data' => t('Gross Payment Required')), 'booking_status' => t('Status'), 'booking_fully_paid' => t('Fully Paid?'), 'welfare_required' => t('Welfare Required?'), ); $result = db_query("SELECT * FROM {booking_person} WHERE booking_event_id = :eid", array(':eid' => $event->eid)); foreach($result as $data) { $options[$data->nid] = array ( 'booking_nid' => l(t('!id', array('!id' => $data->nid)), t('node/!id', array('!id' => $data->nid))), 'booking_name' => $data->booking_firstname . " " . $data->booking_lastname, 'booking_email' => $data->booking_email, 'amount_paid' => $data->booking_amount_paid, 'amount_reqd' => $data->booking_total_pay_reqd, 'booking_status' => _booking_status_generate($data->booking_status), 'booking_fully_paid' => $data->booking_amount_paid < $data->booking_total_pay_reqd ? 'No' : 'Yes', 'welfare_required' => $data->booking_welfare_required == 'Y' ? 'Yes' : 'No', ); } $form['table'] = array ( '#type' => 'tableselect', '#header' => $header, '#options' => $options, ); $form['submit'] = array ( '#type' => 'submit', '#value' => t('Send Email'), ); return array ( 'first_para' => array ( '#type' => 'markup', '#markup' => $prefix, ), 'form' => $form, ); } function booking_manual_email_submit($form, &$form_state) { $counter = 0; $checkboxes = $form_state['values']['table']; //$values['booking_price_active']; //watchdog('booking', 'Formstate when setting buttons: @info', array ('@info' => var_export($form_state['values'], TRUE))); //watchdog('booking', 'Checkboxes when setting buttons: @info', array ('@info' => var_export($checkboxes, TRUE))); foreach($checkboxes as $key => $value) { if (is_numeric($key) && $value != 0) { //check if they exist in the database first $person = db_query("SELECT person.nid " . "FROM {booking_person} person " . "WHERE nid = :nid", array(':nid' => $key)) ->fetchObject(); if ($person) { if ($form_state['values']['email-type'] == 'registration') { watchdog('booking', 'Processing a manual registration email to id @info', array ('@info' => $key)); _booking_registration_email($key, false, true); } elseif ($form_state['values']['email-type'] == 'balance') { watchdog('booking', 'Processing a manual outstanding balance email to id @info', array ('@info' => $key)); _booking_balance_payment_email($key); } elseif ($form_state['values']['email-type'] == 'complete') { watchdog('booking', 'Processing a manual registration complete email to id @info', array ('@info' => $key)); _booking_registration_email($key, true, true); } elseif (strpos($form_state['values']['email-type'], 'custom') !== false) { watchdog('booking', 'Processing a @custom type email to id @info', array ('@custom' => $form_state['values']['email-type'], '@info' => $key)); _booking_custom_email($key,$form_state['values']['email-type']); } /* elseif ($form_state['values']['email-type'] == 'custom1') { watchdog('booking', 'Processing a custom1 type email to id @info', array ('@info' => $key)); _booking_custom_email($key,$form_state['values']['email-type']); } elseif ($form_state['values']['email-type'] == 'custom2') { watchdog('booking', 'Processing a custom2 type email to id @info', array ('@info' => $key)); _booking_custom_email($key,$form_state['values']['email-type']); } elseif ($form_state['values']['email-type'] == 'custom3') { watchdog('booking', 'Processing a custom3 type email to id @info', array ('@info' => $key)); _booking_custom_email($key,$form_state['values']['email-type']); } */ $counter++; } } } drupal_set_message("Sent manual email for $counter people.", 'status', FALSE); watchdog('booking', "Sent manual email for $counter people."); }