You are here

function nodequeue_view_subqueues in Nodequeue 7.2

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

Display a list of subqueues for a queue and their sizes

2 calls to nodequeue_view_subqueues()
nodequeue_admin_view in includes/nodequeue.admin.inc
Page callback to view a queue.
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 339
Admin page callbacks for the nodequeue module.

Code

function nodequeue_view_subqueues($queue) {

  // Fetch all of the subqueues.
  $subqueues = nodequeue_load_subqueues_by_queue($queue->qid);
  $header = array(
    t('Subqueue title'),
    t('Term references'),
    t('In queue'),
    t('Operation'),
  );
  $rows = array();
  foreach ($subqueues as $subqueue) {
    if (nodequeue_api_subqueue_access($subqueue, NULL, $queue)) {
      $title = nodequeue_title_substitute($queue->subqueue_title, $queue, $subqueue);
      $sub_text = nodequeue_subqueue_size_text($queue->size, $subqueue->count, FALSE);
      if (is_string($subqueue->reference)) {
        $subqueue->reference = array(
          $subqueue->reference,
        );
      }
      $references = array();
      foreach ($subqueue->reference as $tid) {
        $term = taxonomy_term_load($tid);
        if ($term) {
          $references[] = l($term->name, 'taxonomy/term/' . $term->tid);
        }
      }
      $rows[] = array(
        array(
          'class' => array(
            'nodequeue-title',
          ),
          'data' => $title,
        ),
        array(
          'class' => array(
            'nodequeue-subqueues',
          ),
          'data' => implode(',', $references),
        ),
        array(
          'class' => array(
            'nodequeue-refs',
          ),
          'data' => $sub_text,
        ),
        array(
          'class' => array(
            'nodequeue-operation',
          ),
          'data' => l(t('View'), "admin/structure/nodequeue/{$queue->qid}/view/{$subqueue->sqid}"),
        ),
      );
    }
  }
  if (empty($rows)) {
    $rows[] = array(
      array(
        'data' => t('No subqueues. To create a subqueue, add an item to a queue through the links on that item.'),
        'colspan' => 3,
      ),
    );
  }
  $output = '<p>' . t('Max items in subqueues: @size', array(
    '@size' => $queue->size ? $queue->size : t("Infinite"),
  )) . '</p>';
  $output .= theme('table', array(
    'header' => $header,
    'rows' => $rows,
  ));
  $output .= theme('pager', array(
    'tags' => NULL,
  ));
  return $output;
}