You are here

function nodequeue_arrange_subqueue_form_submit in Nodequeue 7.3

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_arrange_subqueue_form_submit()
  2. 6.2 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 899
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']['nodes'] as $nid => $element) {
    if (is_numeric($nid)) {
      $nodes[$form_state['values']['nodes'][$nid]['position']] = array(
        'nid' => $nid,
        'data' => $form_state['values']['nodes'][$nid],
      );
    }
  }
  $message = '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 = 'The queue has been reversed.';
    }

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