function _nodequeue_dragdrop_get_nodes in Nodequeue 7.3
Same name and namespace in other branches
- 6.2 includes/nodequeue.admin.inc \_nodequeue_dragdrop_get_nodes()
- 7.2 includes/nodequeue.admin.inc \_nodequeue_dragdrop_get_nodes()
Return a list of nodes in a specific subqueue.
1 call to _nodequeue_dragdrop_get_nodes()
- nodequeue_arrange_subqueue in includes/
nodequeue.admin.inc - View the contents of a subqueue, with links to re-order the queue.
File
- includes/
nodequeue.admin.inc, line 724 - Admin page callbacks for the nodequeue module.
Code
function _nodequeue_dragdrop_get_nodes($queue, $subqueue) {
$order = $queue->reverse ? 'DESC' : 'ASC';
$visible = nodequeue_nids_visible($subqueue->sqid);
// Get a list of all nodes in the subqueue, regardless of access restrictions.
$query = db_select('node', 'n')
->distinct();
$query
->leftJoin('nodequeue_nodes', 'nq', 'nq.nid = n.nid');
$query
->fields('n', array(
'nid',
))
->fields('nq', array(
'position',
))
->condition('nq.sqid', $subqueue->sqid)
->orderBy('nq.position', $order);
$result = $query
->execute();
$nids = array();
$sq_nodes = array();
foreach ($result as $sq_node) {
$nids[] = $sq_node->nid;
// Save node position in a separate array so we can reference it later.
$sq_nodes[$sq_node->nid]['position'] = $sq_node->position;
}
$nodes = node_load_multiple($nids);
foreach ($nodes as $node) {
$node->visible = isset($visible[$node->nid]) ? TRUE : FALSE;
$node->position = $sq_nodes[$node->nid]['position'];
}
return $nodes;
}