function nodequeue_queue_swap in Nodequeue 7.3
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_queue_swap()
- 5 nodequeue.module \nodequeue_queue_swap()
- 6.2 nodequeue.module \nodequeue_queue_swap()
- 7.2 nodequeue.module \nodequeue_queue_swap()
Swap two positions within a subqueue.
3 calls to nodequeue_queue_swap()
- 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 1158 - 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_query("SELECT nid FROM {nodequeue_nodes} WHERE sqid = :sqid AND position = :position", array(
':sqid' => $subqueue->sqid,
':position' => $pos1,
))
->fetchField();
if (!$nid) {
return;
}
db_update('nodequeue_nodes')
->fields(array(
'position' => $pos1,
))
->condition('position', $pos2)
->condition('sqid', $subqueue->sqid)
->execute();
db_update('nodequeue_nodes')
->fields(array(
'position' => $pos2,
))
->condition('nid', $nid)
->condition('sqid', $subqueue->sqid)
->execute();
// notify other modules of the swap
module_invoke_all('nodequeue_swap', $subqueue->sqid, $nid);
}