You are here

function workbench_email_form_submit in Workbench Email 7.3

Same name and namespace in other branches
  1. 7 workbench_email.admin.inc \workbench_email_form_submit()

Form submit handler for email transitions.

Adds or deletes email transitions depending on user input.

Parameters

array $form: The form array

array $form_state: The form_state array

File

./workbench_email.admin.inc, line 358
Administrative forms for Workbench Email Module.

Code

function workbench_email_form_submit($form, &$form_state) {
  variable_set('workbench_email_queue_mail', $form_state['values']['config_container']['queue_mail']);
  $roles = workbench_email_determine_valid_roles();
  foreach ($form_state['values']['transitions'] as $transition) {
    foreach ($roles as $rid => $role) {
      if ($transition[$role]['notify']) {
        $rid == WORKBENCH_EMAIL_AUTHOR ? $author = 1 : ($author = 0);
        $automatic = $transition[$role]['auto_notify'];
        $transition_label = $transition['transition']->from_name . '_to_' . $transition['transition']->to_name;
        $subject = NULL;
        $message = NULL;
        if (isset($form_state['values']['emails'])) {
          $message = $form_state['values']['emails'][$transition_label][$rid]['message'];
          $subject = $form_state['values']['emails'][$transition_label][$rid]['subject'];
        }
        workbench_email_save($transition['transition'], $rid, $subject, $message, $author, $automatic);
      }
      else {
        workbench_email_delete($transition['transition'], $rid);
      }
    }
  }
  drupal_set_message(t('Settings have been updated'));
}