You are here

function mailing_list_subscription_form_submit in Mailing List 7

Same name and namespace in other branches
  1. 6 mailing_list.module \mailing_list_subscription_form_submit()

Submit handler for the subscription form; saves a subscription.

1 string reference to 'mailing_list_subscription_form_submit'
mailing_list_subscription_form in ./mailing_list.module
Display a form letting a user subscribe to a mailing list.

File

./mailing_list.module, line 484
Minimalistic mailing list module.

Code

function mailing_list_subscription_form_submit($form, &$form_state) {
  $is_edit = FALSE;
  $admin = FALSE;
  if (user_access('administer mailing lists')) {
    $admin = TRUE;
    $is_edit = !empty($form_state['values']['eid']);
  }
  if ($form_state['values']['mlid'] == null) {
    drupal_set_message(t('Unable to save mailing list subscription: no mailing list specified.'), 'error');
    return;
  }
  $mle = new StdClass();
  $mle->mlid = $form_state['values']['mlid'];
  $mle->mail = $form_state['values']['mail'];
  $mle->name = $form_state['values']['name'];
  if ($is_edit) {
    $mle->eid = $form_state['values']['eid'];
  }
  if (mailing_list_email_save($mle)) {
    if ($admin) {
      if ($is_edit) {
        drupal_set_message('<span class="mailing-list-subscription-message">' . t(variable_get('mailing_list_message_admin_email_edited', "%name <%mail> updated."), array(
          '%name' => $form_state['values']['name'],
          '%mail' => $form_state['values']['mail'],
        )) . '</span>');
        return;
      }
      global $user;
      drupal_set_message('<span class="mailing-list-subscription-message">' . t(variable_get('mailing_list_message_admin_email_added', "Submission confirmed: %admin added %name <%mail> to list %list."), array(
        '%name' => $form_state['values']['name'],
        '%mail' => $form_state['values']['mail'],
        '%admin' => $user->name,
        '%list' => $form_state['values']['ml_name'],
      )) . '</span>');
      return;
    }
    drupal_set_message('<span class="mailing-list-subscription-message">' . t(variable_get('mailing_list_subscription_message', MAILING_LIST_MESSAGE_SUBSCRIPTION), array(
      '%name' => $form_state['values']['name'],
      '%mail' => $form_state['values']['mail'],
    )) . '</span>');
    watchdog('mailing_list', 'Mailing list: %name added via subscription form.', array(
      '%name' => $form_state['values']['mail'],
    ));
  }
  else {
    drupal_set_message(t('Failed to subscribe to mailing list %name.', array(
      '%name' => $form_state['values']['ml_name'],
    )), 'error');
  }
}