function nodequeue_load_subqueues_by_reference in Nodequeue 7.2
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.3 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
array $references: A keyed array of references to load. The key is the $qid and each value is another array of references.
bool $bypass_cache:
Return value
object
3 calls to nodequeue_load_subqueues_by_reference()
- nodequeue_contextual_links_view_alter in ./
nodequeue.module - Implements hook_contextual_links_view_alter().
- 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 modules/
smartqueue/ smartqueue.module - Implements hook_nodequeue_subqueues().
File
- ./
nodequeue.module, line 1083 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_load_subqueues_by_reference($references, $bypass_cache = FALSE) {
$cache =& drupal_static(__FUNCTION__, array());
$subqueues = array();
if ($bypass_cache) {
$cache = array();
}
if (!empty($references)) {
$query = db_select('nodequeue_subqueue', 's')
->groupBy('s.sqid')
->groupBy('s.qid')
->groupBy('s.reference')
->fields('s', array(
'title',
'sqid',
'qid',
'reference',
));
$query
->leftJoin('nodequeue_nodes', 'n', 'n.sqid = s.sqid');
$query
->addExpression('COUNT(n.position)', 'count');
$where = db_or();
foreach ($references as $qid => $reference) {
$where
->condition(db_and()
->condition('s.qid', $qid)
->condition('s.reference', $reference));
}
$query
->condition($where);
$result = $query
->execute();
foreach ($result as $subqueue) {
$cache[$subqueue->qid][$subqueue->reference] = $subqueues[$subqueue->sqid] = $subqueue;
}
}
return $subqueues;
}