You are here

function nodequeue_nids_visible in Nodequeue 7.3

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_nids_visible()
  2. 6.2 nodequeue.module \nodequeue_nids_visible()

Get the list of nodes in the subqueue, taking into account node access restrictions.

1 call to nodequeue_nids_visible()
_nodequeue_dragdrop_get_nodes in includes/nodequeue.admin.inc
Return a list of nodes in a specific subqueue.

File

./nodequeue.module, line 2028
Maintains queues of nodes in arbitrary order.

Code

function nodequeue_nids_visible($sqid = -1, $account = NULL) {
  $node_status_sql = '';
  if (!$account) {
    global $user;
    $account = $user;
  }
  $nids_visible = array();
  $query = db_select('node', 'n')
    ->fields('n', array(
    'nid',
  ))
    ->addTag('node_access')
    ->distinct()
    ->condition('nq.sqid', $sqid)
    ->orderBy('nq.position', 'ASC');
  $query
    ->leftJoin('nodequeue_nodes', 'nq', 'nq.nid = n.nid');
  if (!user_access('administer nodes', $account)) {
    $query
      ->condition(db_or()
      ->condition('n.status', 1)
      ->condition('n.uid', $account->uid));
  }

  // Disable i18n_select for this query.
  if (arg(0) == 'admin') {
    $query
      ->addTag('i18n_select');
  }
  $query_restricted = $query
    ->execute();
  foreach ($query_restricted as $result_restricted) {
    $nids_visible[$result_restricted->nid] = $result_restricted->nid;
  }
  return $nids_visible;
}