function nodequeue_load_subqueues_by_reference in Nodequeue 7.3
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_load_subqueues_by_reference()
- 6.2 nodequeue.module \nodequeue_load_subqueues_by_reference()
- 7.2 nodequeue.module \nodequeue_load_subqueues_by_reference()
Load a set of subqueues by reference.
This can be used to load a set of subqueues by reference; it will primarily be used by plugins that are managing subqueues.
Parameters
$references: A keyed array of references to load. The key is the $name and each value is another array of references.
2 calls to nodequeue_load_subqueues_by_reference()
- nodequeue_get_subqueues_by_node in ./
nodequeue.module - Get a list of valid subqueues for a node, along with the position of the node.
- smartqueue_taxonomy_nodequeue_subqueues in ./
smartqueue.module - Implements hook_nodequeue_subqueues().
File
- ./
nodequeue.module, line 778 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_load_subqueues_by_reference($references, $bypass_cache = FALSE) {
static $cache = array();
$subqueues = array();
if ($bypass_cache) {
$cache = array();
}
if (!empty($references)) {
$query = db_select('nodequeue_subqueue', 's')
->groupBy('s.sqid')
->fields('s');
$query
->leftJoin('nodequeue_nodes', 'n', 'n.sqid = s.sqid');
$query
->addExpression('COUNT(n.position)', 'count');
$where = db_or();
foreach ($references as $name => $reference) {
$where
->condition(db_and()
->condition('s.name', $name)
->condition('s.reference', $reference));
}
$query
->condition($where);
$result = $query
->execute();
foreach ($result as $subqueue) {
$cache[$subqueue->name][$subqueue->reference] = $subqueues[$subqueue->sqid] = $subqueue;
}
}
return $subqueues;
}