You are here

function nodequeue_queue_back in Nodequeue 7.3

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_queue_back()
  2. 5 nodequeue.module \nodequeue_queue_back()
  3. 6.2 nodequeue.module \nodequeue_queue_back()
  4. 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();
}