function nodequeue_queue_swap in Nodequeue 6.2
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_queue_swap()
- 5 nodequeue.module \nodequeue_queue_swap()
- 7.3 nodequeue.module \nodequeue_queue_swap()
- 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);
}