You are here

function nodequeue_get_subqueues_by_node in Nodequeue 6.2

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

Get a list of valid subqueues for a node, along with the position of the node.

Parameters

$queues: An array of fully loaded queue objects.

$node: A fully loaded node object.

5 calls to nodequeue_get_subqueues_by_node()
nodequeue_add_action in ./nodequeue.module
Action to add a node to a queue.
nodequeue_apachesolr_update_index in ./nodequeue.module
Implementation of hook_apachesolr_update_index().
nodequeue_link in ./nodequeue.module
Implementation of hook_link().
nodequeue_node_tab in includes/nodequeue.admin.inc
Display the queue controls for a node.
nodequeue_node_tab_access in ./nodequeue.module

File

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

Code

function nodequeue_get_subqueues_by_node($queues, $node) {

  // Determine which subqueues are valid for each queue.
  $references = array();
  static $last_nid = 0;
  foreach ($queues as $queue) {
    if ($result = nodequeue_api_subqueues($queue, $node)) {
      $references[$queue->qid] = is_array($result) ? $result : array(
        $result,
      );
    }
  }
  if (empty($references)) {
    return array();
  }

  // only allow the static cache to be used if the nid is the same as the last
  $subqueues = nodequeue_load_subqueues_by_reference($references, $last_nid != $node->nid);
  $last_nid = $node->nid;
  return $subqueues;
}