You are here

function nodequeue_arrange_subqueue in Nodequeue 5.2

Same name and namespace in other branches
  1. 6.2 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue()
  2. 7.3 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue()
  3. 7.2 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue()

View the contents of a subqueue, with links to re-order the queue.

1 call to nodequeue_arrange_subqueue()
nodequeue_admin_view in ./nodequeue.module
Page callback to view a queue.

File

./nodequeue.module, line 859

Code

function nodequeue_arrange_subqueue($queue, $subqueue) {
  $qid = $queue->qid;
  $sqid = $subqueue->sqid;
  $output = '';
  $body = '';
  $order = $queue->reverse ? 'DESC' : 'ASC';

  //Get the list of nodes in the subqueue.

  //First, get a list of nodes taking into account node access restrictions.
  $nids_visible = nodequeue_nids_visible($subqueue->sqid);

  //Then, get an unrestricted list of nodes in the subqueue.

  //Titles are not displayed for nodes that are not present in the result set of both queries.
  $result = db_query("SELECT DISTINCT(n.nid), n.title, n.uid, u.name, n.created, nq.position FROM {node} n LEFT JOIN {users} u on n.uid = u.uid LEFT JOIN {nodequeue_nodes} nq ON nq.nid = n.nid WHERE nq.sqid = %d ORDER BY nq.position {$order}", $sqid);
  $nids = array();
  while ($node = db_fetch_object($result)) {
    $nids[$node->position] = $node->nid;
    $body .= nodequeue_arrange_subqueue_entry($queue, $subqueue, $node, $nids_visible);
  }
  $output = '<p>' . t('Max nodes in queue: @size', array(
    '@size' => $queue->size ? $queue->size : t("Infinite"),
  )) . '</p>';
  $output .= '<p class="nodequeue-hide-if-not-js nodequeue-warning">';
  $output .= t('Changes made to the queue order and queue removals will not be active until you click Save, below. If you add more nodes than the queue can hold, they will be removed from the @end when you save!', array(
    '@end' => $queue->reverse ? t('bottom') : t('top'),
  ));
  $output .= '</p>';
  $output .= '<table id="nodequeue-table">';
  $output .= '<thead>';
  $output .= '<tr>';
  $output .= '<th class="nodequeue-node">' . t('Node') . '</th>';
  $output .= '<th class="nodequeue-author">' . t('Author') . '</th>';
  $output .= '<th class="nodequeue-date">' . t('Date Created') . '</th>';
  $output .= '<th class="nodequeue-operation">' . t('Operation') . '</th>';
  $output .= '</thead>';
  $output .= '<tbody>' . $body . '</tbody>';
  $output .= '</table>';
  $output .= drupal_get_form('nodequeue_arrange_subqueue_form', $queue, $sqid, $nids);
  drupal_add_js(drupal_get_path('module', 'nodequeue') . '/nodequeue.js');
  return $output;
}