You are here

function nodequeue_generate_repopulate_queues in Nodequeue 7.2

Same name and namespace in other branches
  1. 7.3 nodequeue_generate.module \nodequeue_generate_repopulate_queues()

Re-populates nodequeues with nodes.

Parameters

array $qids: Array of queues, that need to be repopulated.

int $nodes_limit: The node limit.

3 calls to nodequeue_generate_repopulate_queues()
drush_nodequeue_generate in ./nodequeue_generate.drush.inc
Re-populates specified nodequeues with random nodes.
drush_nodequeue_generate_all in ./nodequeue_generate.drush.inc
Re-populates all nodequeues with random nodes.
nodequeue_generate_form_submit in ./nodequeue_generate.module

File

./nodequeue_generate.module, line 96

Code

function nodequeue_generate_repopulate_queues($qids, $nodes_limit = 10) {

  // Remove existing nodes from queues.
  db_query("DELETE FROM {nodequeue_nodes} WHERE qid IN (:qids)", array(
    ':qids' => $qids,
  ));

  // Load all queues and their subqueues.
  $queues = nodequeue_load_queues($qids);
  $subqueues = nodequeue_load_subqueues_by_queue($qids);

  // Re-populate subqueues
  foreach ($qids as $qid) {
    $queue = nodequeue_load($qid);

    // Skip nodequeues that do not belong to any node types.
    if (!empty($queue->types)) {
      $limit = $queue->size ? $queue->size : $nodes_limit;
      $callback = $queue->owner . '_nodequeue_generate';
      if (function_exists($callback)) {
        $callback($queue, $limit);
      }
    }
  }
  drupal_set_message(format_plural(count($qids), '1 queue populated', '@count queues populated.'));
}