You are here

function nodequeue_queue_swap in Nodequeue 6.2

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_queue_swap()
  2. 5 nodequeue.module \nodequeue_queue_swap()
  3. 7.3 nodequeue.module \nodequeue_queue_swap()
  4. 7.2 nodequeue.module \nodequeue_queue_swap()

Swap two positions within a subqueue.

4 calls to nodequeue_queue_swap()
NodequeueAPISubqueueUnitTest::testNodequeueQueueSwap in tests/nodequeue.test
nodequeue_queue_down in ./nodequeue.module
Move a position within a subqueue down by one.
nodequeue_queue_up in ./nodequeue.module
Move a position within a subqueue up by one.
nodequeue_subqueue_shuffle in ./nodequeue.module
Shuffle a queue.

File

./nodequeue.module, line 1173
Maintains queues of nodes in arbitrary order.

Code

function nodequeue_queue_swap($subqueue, $pos1, $pos2) {

  // Grab the nid off one of the positions so we can more easily swap.
  $nid = db_result(db_query("SELECT nid FROM {nodequeue_nodes} WHERE sqid = %d AND position = %d", $subqueue->sqid, $pos1));
  if (!$nid) {
    return;
  }
  db_query("UPDATE {nodequeue_nodes} SET position = %d WHERE position = %d AND sqid = %d", $pos1, $pos2, $subqueue->sqid);
  db_query("UPDATE {nodequeue_nodes} SET position = %d WHERE nid = %d AND sqid = %d", $pos2, $nid, $subqueue->sqid);

  // notify other modules of the swap
  module_invoke_all('nodequeue_swap', $subqueue->sqid, $nid);
}