function nodequeue_queue_front in Nodequeue 7.3
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_queue_front()
- 5 nodequeue.module \nodequeue_queue_front()
- 6.2 nodequeue.module \nodequeue_queue_front()
- 7.2 nodequeue.module \nodequeue_queue_front()
Move an item to the front of the queue.
File
- ./
nodequeue.module, line 1208 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_queue_front($subqueue, $position) {
if ($position < 2 || $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' => 1,
'timestamp' => $entry->timestamp,
))
->execute();
}