function nodequeue_subqueue_add in Nodequeue 6.2
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_subqueue_add()
- 7.3 nodequeue.module \nodequeue_subqueue_add()
- 7.2 nodequeue.module \nodequeue_subqueue_add()
Add a node to a queue.
Parameters
$queue: The parent queue of the subqueue. This is required so that we can pop nodes out if the queue breaks size limits.
$subqueue: The subqueue to add the node to.
$nid: The node ID
9 calls to nodequeue_subqueue_add()
- NodequeueAPISubqueueUnitTest::testNodequeueQueueClear in tests/
nodequeue.test - NodequeueAPISubqueueUnitTest::testNodequeueSubqueueAdd in tests/
nodequeue.test - NodequeueAPISubqueueUnitTest::testNodequeueSubqueueRemove in tests/
nodequeue.test - NodequeueAPISubqueueUnitTest::testNodequeueSubqueueRemoveNode in tests/
nodequeue.test - NodequeueWebTestCase::populateNodequeue in tests/
nodequeue.test
File
- ./
nodequeue.module, line 1040 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_subqueue_add($queue, &$subqueue, $nid) {
if (!empty($nid)) {
db_query("INSERT INTO {nodequeue_nodes} (sqid, qid, nid, position, timestamp) VALUES (%d, %d, %d, COALESCE((SELECT MAX(position)+1 FROM (SELECT * from {nodequeue_nodes} WHERE sqid = %d) as nn), 1), %d)", $subqueue->sqid, $queue->qid, $nid, $subqueue->sqid, time());
$subqueue->count = db_result(db_query("SELECT count(nid) FROM {nodequeue_nodes} WHERE sqid = %d", $subqueue->sqid));
// If adding this would make the queue too big, pop the front node
// (or nodes) out.
if (!empty($queue->size)) {
// 0 means infinity so never do this if FALSE.
nodequeue_check_subqueue_size($queue, $subqueue, $queue->size);
}
if (module_exists('apachesolr')) {
if (function_exists('apachesolr_mark_node')) {
apachesolr_mark_node($nid);
}
else {
apachesolr_mark_entity('node', $nid);
}
}
// Invoke the hook to notify other modules of the node addition.
module_invoke_all('nodequeue_add', $subqueue->sqid, $nid);
}
}