function aggregator_form_feed_submit

Form submission handler for aggregator_form_feed().

@todo Add delete confirmation dialog.

See also

aggregator_form_feed_validate()

File

drupal/modules/aggregator/aggregator.admin.inc, line 171
Administration page callbacks for the Aggregator module.

Code

function aggregator_form_feed_submit($form, &$form_state) {
  if ($form_state['values']['op'] == t('Delete')) {
    $title = $form_state['values']['title'];

    // Unset the title.
    unset($form_state['values']['title']);
  }
  aggregator_save_feed($form_state['values']);
  if (isset($form_state['values']['fid'])) {
    if (isset($form_state['values']['title'])) {
      drupal_set_message(t('The feed %feed has been updated.', array(
        '%feed' => $form_state['values']['title'],
      )));
      if (arg(0) == 'admin') {
        $form_state['redirect'] = 'admin/config/services/aggregator/';
        return;
      }
      else {
        $form_state['redirect'] = 'aggregator/sources/' . $form_state['values']['fid'];
        return;
      }
    }
    else {
      watchdog('aggregator', 'Feed %feed deleted.', array(
        '%feed' => $title,
      ));
      drupal_set_message(t('The feed %feed has been deleted.', array(
        '%feed' => $title,
      )));
      if (arg(0) == 'admin') {
        $form_state['redirect'] = 'admin/config/services/aggregator/';
        return;
      }
      else {
        $form_state['redirect'] = 'aggregator/sources/';
        return;
      }
    }
  }
  else {
    watchdog('aggregator', 'Feed %feed added.', array(
      '%feed' => $form_state['values']['title'],
    ), WATCHDOG_NOTICE, l(t('view'), 'admin/config/services/aggregator'));
    drupal_set_message(t('The feed %feed has been added.', array(
      '%feed' => $form_state['values']['title'],
    )));
  }
}