function _nodequeue_dragdrop_get_nodes in Nodequeue 7.2
Same name and namespace in other branches
- 6.2 includes/nodequeue.admin.inc \_nodequeue_dragdrop_get_nodes()
- 7.3 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 803 - Admin page callbacks for the nodequeue module.
Code
function _nodequeue_dragdrop_get_nodes($queue, $subqueue) {
if (is_object($subqueue) && $subqueue->sqid) {
$order = $queue->reverse ? 'DESC' : 'ASC';
// Get a list of all nodes in the subqueue, regardless of access restrictions.
$query = db_select('nodequeue_nodes', 'nq');
$query
->innerJoin('node', 'n', '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();
$key = 0;
foreach ($result as $sq_node) {
$nids[] = $sq_node->nid;
// Save node position in a separate array so we can reference it later.
$sq_nodes[$key] = (array) $sq_node;
$key++;
}
$nodes = node_load_multiple($nids);
foreach ($sq_nodes as $key => $sq_node) {
$nid = $sq_node['nid'];
$sq_node += (array) $nodes[$nid];
$sq_node['visible'] = node_access('view', $nodes[$nid]) ? TRUE : FALSE;
$sq_nodes[$key] = (object) $sq_node;
}
return $sq_nodes;
}
}