You are here

function nodequeue_get_subqueues_by_node in Nodequeue 7.2

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_get_subqueues_by_node()
  2. 6.2 nodequeue.module \nodequeue_get_subqueues_by_node()
  3. 7.3 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.

Return value

array|object if references is missing between $queues and $node it will return empty array else $subqueues.

7 calls to nodequeue_get_subqueues_by_node()
action_nodequeue_add in includes/nodequeue.actions.inc
Old-style action to add a node to a queue.
nodequeue_add_action in includes/nodequeue.actions.inc
Action to add a node to a queue.
nodequeue_apachesolr_index_document_build_node in ./nodequeue.module
Implements hook_apachesolr_index_document_build_ENTITY_TYPE().
nodequeue_node_links in ./nodequeue.module
Returns an array of nodequeue links for a node.
nodequeue_node_tab in includes/nodequeue.admin.inc
Display the queue controls for a node.

... See full list

File

./nodequeue.module, line 1739
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();
  $last_nid =& drupal_static(__FUNCTION__, 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;
}