You are here

function nodequeue_edit_queue_form_submit in Nodequeue 6.2

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

Submit function for the nodequeue_queue form.

File

includes/nodequeue.admin.inc, line 592
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);
  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 ($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/content/nodequeue';
}