You are here

function nodequeue_arrange_subqueue_form_submit in Nodequeue 6.2

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

Submit handler for nodequeue drag'n'drop form. Updates node positions in {nodequeue_nodes}.

2 calls to nodequeue_arrange_subqueue_form_submit()
nodequeue_arrange_subqueue_form_reverse_submit in includes/nodequeue.admin.inc
Submit function for nodequeue_arrange_subqueue_form on 'Reverse' button.
nodequeue_arrange_subqueue_form_shuffle_submit in includes/nodequeue.admin.inc
1 string reference to 'nodequeue_arrange_subqueue_form_submit'
nodequeue_arrange_subqueue_form in includes/nodequeue.admin.inc
Form definition for nodequeue drag'n'drop form.

File

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

Code

function nodequeue_arrange_subqueue_form_submit($form, &$form_state, $reverse = FALSE, $shuffle = FALSE) {
  $nodes = array();
  foreach ($form_state['values'] as $nid => $element) {
    if (is_numeric($nid)) {
      $nodes[$form_state['values'][$nid]['position']] = array(
        'nid' => $nid,
        'data' => $form_state['values'][$nid],
      );
    }
  }
  $message = t('The queue has been updated.');
  if ($reverse || $shuffle) {
    $keys = array_keys($nodes);
    $values = array_values($nodes);

    // reverse the list if the reverse button was pressed
    if ($reverse) {
      $values = array_reverse($values);
      $message = t('The queue has been reversed.');
    }

    // shuffle the list if the shuffle button was pressed.
    if ($shuffle) {
      shuffle($values);
      $message = t('The queue has been shuffled.');
    }
    $nodes = array_combine($keys, $values);
  }
  $qid = $form['#queue']['qid'];
  $sqid = $form['#subqueue']['sqid'];
  nodequeue_save_subqueue_order($nodes, $qid, $sqid);
  drupal_set_message(check_plain($message));
}