You are here

function nodequeue_edit_queue_form_submit in Nodequeue 7.2

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_edit_queue_form_submit()
  2. 6.2 includes/nodequeue.admin.inc \nodequeue_edit_queue_form_submit()
  3. 7.3 includes/nodequeue.admin.inc \nodequeue_edit_queue_form_submit()

Submit function for the nodequeue_queue form.

File

includes/nodequeue.admin.inc, line 634
Admin page callbacks for the nodequeue module.

Code

function nodequeue_edit_queue_form_submit($formid, &$form_state) {
  $queue = (object) $form_state['values'];

  // Fix checkboxes.
  $queue->roles = array_keys(array_filter($queue->roles));
  $queue->types = array_keys(array_filter($queue->types));

  // Remove roles that have the 'manipulate all queues' permission.
  $manipulate_all_queues = array_keys(user_roles(FALSE, 'manipulate all queues'));
  $queue->roles = array_diff($queue->roles, $manipulate_all_queues);
  if (!isset($queue->qid)) {
    $queue->new = TRUE;
  }

  // Modify show_in_links based on whether or not links are available.
  $queue->show_in_links = !empty($queue->link) || !empty($queue->link_remove);

  // Store the unique_entries setting.
  $queue->unique_entries = !empty($queue->unique_entries);
  nodequeue_api_queue_form_submit($queue, $form_state);
  $qid = nodequeue_save($queue);

  // sets $queue->qid if needed.
  nodequeue_api_queue_form_submit_finish($queue, $form_state);
  nodequeue_check_subqueue_sizes($queue);
  if (!empty($queue->new)) {
    $form_state['values']['qid'] = $qid;
    drupal_set_message(t('The queue has been created.'));
  }
  else {
    drupal_set_message(t('The queue has been updated.'));
  }
  $form_state['redirect'] = 'admin/structure/nodequeue';
}