You are here

function nodequeue_queue_front in Nodequeue 6.2

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

Move an item to the front of the queue.

1 call to nodequeue_queue_front()
NodequeueAPISubqueueUnitTest::testNodequeueQueueFront in tests/nodequeue.test

File

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

Code

function nodequeue_queue_front($subqueue, $position) {
  if ($position < 2 || $position > $subqueue->count) {
    return;
  }
  $entry = db_fetch_object(db_query("SELECT * FROM {nodequeue_nodes} WHERE sqid= %d AND position = %d", $subqueue->sqid, $position));
  db_query("DELETE FROM {nodequeue_nodes} WHERE sqid = %d AND position = %d", $subqueue->sqid, $position);
  db_query("UPDATE {nodequeue_nodes} SET position = position + 1 WHERE sqid= %d AND position < %d", $subqueue->sqid, $position);
  db_query("INSERT INTO {nodequeue_nodes} (qid, sqid, nid, position, timestamp) VALUES (%d, %d, %d, 1, %d)", $entry->qid, $subqueue->sqid, $entry->nid, $entry->timestamp);
}