function nodequeue_queue_back in Nodequeue 7.3
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_queue_back()
- 5 nodequeue.module \nodequeue_queue_back()
- 6.2 nodequeue.module \nodequeue_queue_back()
- 7.2 nodequeue.module \nodequeue_queue_back()
Move an item to the back of the queue.
File
- ./
nodequeue.module, line 1243 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_queue_back($subqueue, $position) {
if ($position < 1 || $position >= $subqueue->count) {
return;
}
$result = db_query("SELECT * FROM {nodequeue_nodes} WHERE sqid= :sqid AND position = :position", array(
':sqid' => $subqueue->sqid,
':position' => $position,
));
$entry = $result
->fetchObject();
db_delete('nodequeue_nodes')
->condition('sqid', $subqueue->sqid)
->condition('position', $position)
->execute();
db_update('nodequeue_nodes')
->expression('position', 'position - 1')
->condition('sqid', $subqueue->sqid)
->condition('position', $position, '<')
->execute();
db_insert('nodequeue_nodes')
->fields(array(
'name' => $entry->name,
'sqid' => $subqueue->sqid,
'nid' => $entry->nid,
'position' => $subqueue->count,
'timestamp' => $entry->timestamp,
))
->execute();
}