You are here

function simplenews_admin_types_form_submit in Simplenews 6.2

Same name and namespace in other branches
  1. 5 simplenews.module \simplenews_admin_types_form_submit()
  2. 6 simplenews.admin.inc \simplenews_admin_types_form_submit()

File

includes/simplenews.admin.inc, line 306
Newsletter admin, subscription admin, simplenews settings

Code

function simplenews_admin_types_form_submit($form, &$form_state) {

  // Redirect on a delete operation for posterity's sake.
  if (isset($form_state['post']['op']) && $form_state['post']['op'] == t('Delete')) {
    drupal_goto('admin/content/simplenews/types/delete/' . $term->tid);
  }

  // Create or update taxonomy term for this newsletter.
  // When creating a term $form_state['values']['tid'] is NULL.
  if (isset($form_state['values']['tid'])) {
    $termdata = (array) taxonomy_get_term($form_state['values']['tid']);

    // Maintain hierarchy
    $parents = taxonomy_get_parents($form_state['values']['tid']);
    foreach ($parents as $parent) {
      $termdata['parent'][] = $parent->tid;
    }
  }
  $termdata['vid'] = $form_state['values']['vid'];
  $termdata['name'] = $form_state['values']['name'];
  $termdata['description'] = $form_state['values']['description'];
  $termdata['weight'] = $form_state['values']['weight'];
  switch (taxonomy_save_term($termdata)) {
    case SAVED_NEW:
      drupal_set_message(t('Created new term %name.', array(
        '%name' => $form_state['values']['name'],
      )));
      break;
    case SAVED_UPDATED:
      drupal_set_message(t('Updated term %name.', array(
        '%name' => $form_state['values']['name'],
      )));
      break;
  }

  // Store newsletter specific settings.
  // When editing a newsletter fieldnames have $tid suffix.
  // When creating a new newsletter field names have no suffix
  // and $form_state['values']['tid'] is NULL.
  if (isset($form_state['values']['tid'])) {
    $tid = $suffix = $form_state['values']['tid'];
  }
  else {

    // Get the tid from the database based on the form values used above to
    // create a new term.
    $tid = db_result(db_query("\n      SELECT t.tid\n      FROM {term_data} t\n      WHERE t.vid = %d\n        AND t.name = '%s'\n      ORDER BY t.tid DESC", $form_state['values']['vid'], $form_state['values']['name']));
    $suffix = '';
  }
  variable_set('simplenews_from_name_' . $tid, $form_state['values']['simplenews_from_name_' . $suffix]);
  variable_set('simplenews_from_address_' . $tid, $form_state['values']['simplenews_from_address_' . $suffix]);
  variable_set('simplenews_email_subject_' . $tid, $form_state['values']['simplenews_email_subject_' . $suffix]);
  variable_set('simplenews_hyperlinks_' . $tid, $form_state['values']['simplenews_hyperlinks_' . $suffix]);
  variable_set('simplenews_new_account_' . $tid, $form_state['values']['simplenews_new_account_' . $suffix]);
  variable_set('simplenews_opt_inout_' . $tid, $form_state['values']['simplenews_opt_inout_' . $suffix]);
}