You are here

function nodequeue_handler_field_all_subqueues::pre_render in Nodequeue 6.2

Same name and namespace in other branches
  1. 7.3 includes/views/nodequeue_handler_field_all_subqueues.inc \nodequeue_handler_field_all_subqueues::pre_render()
  2. 7.2 includes/views/nodequeue_handler_field_all_subqueues.inc \nodequeue_handler_field_all_subqueues::pre_render()

Overrides nodequeue_handler_field_all_queues::pre_render

File

includes/views/nodequeue_handler_field_all_subqueues.inc, line 10
Field handler for all subqueues

Class

nodequeue_handler_field_all_subqueues
@file Field handler for all subqueues

Code

function pre_render(&$values) {
  if (user_access('manipulate queues') || user_access('manipulate all queues')) {
    $nids = array();
    foreach ($values as $result) {
      $nids[] = $result->{$this->field_alias};
    }
    if ($nids) {
      $queue = '';
      if (!empty($this->options['limit']) && !empty($this->options['qids'])) {
        $queue = " AND nn.qid IN (" . implode(', ', array_keys(array_filter($this->options['qids']))) . ")";
      }
      $result = db_query("SELECT nn.nid, nn.sqid, nn.qid, nq.subqueue_title, ns.title FROM {nodequeue_nodes} nn INNER JOIN {nodequeue_queue} nq ON nq.qid = nn.qid INNER JOIN {nodequeue_subqueue} ns on nn.sqid = ns.sqid WHERE nn.nid IN (" . implode(', ', $nids) . "){$queue} ORDER BY ns.title, nq.subqueue_title");
      while ($queue = db_fetch_object($result)) {
        $title = empty($queue->subqueue_title) ? $queue->title : str_replace('%subqueue', $queue->title, $queue->subqueue_title);
        if (empty($this->options['link_to_queue'])) {
          $this->items[$queue->nid][$queue->sqid] = check_plain($title);
        }
        else {
          $this->items[$queue->nid][$queue->sqid] = l($title, "admin/content/nodequeue/{$queue->qid}/view/{$queue->sqid}");
        }
      }
    }
  }
}