From fa78ada881cd5ae1ce204c0d69045e55a1ce2b03 Mon Sep 17 00:00:00 2001
From: Lorenz Schori <lo@znerol.ch>
Date: Sat, 22 Oct 2011 14:57:17 +0200
Subject: [PATCH 3/3] Convert database queries

---
 .../views/nodequeue_handler_field_all_queues.inc   |   15 ++++++++++-----
 .../nodequeue_handler_field_all_subqueues.inc      |   18 +++++++++++++-----
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/includes/views/nodequeue_handler_field_all_queues.inc b/includes/views/nodequeue_handler_field_all_queues.inc
index 35a2251..0415bcf 100644
--- a/includes/views/nodequeue_handler_field_all_queues.inc
+++ b/includes/views/nodequeue_handler_field_all_queues.inc
@@ -61,12 +61,17 @@ class nodequeue_handler_field_all_queues extends views_handler_field_prerender_l
     }
 
     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']))) . ")";
+      $query = db_select('nodequeue_nodes', 'nn');
+      $query->innerJoin('nodequeue_queue', 'nq', 'nn.qid = nq.qid');
+      $query->fields('nn', array('nid', 'qid'));
+      $query->fields('nq', array('title'));
+      $query->orderby('nq.title');
+      $query->condition('nn.nid', $nids);
+      $qids = array_filter($this->options['qids']);
+      if (!empty($this->options['limit']) && !empty($qids)) {
+        $query->condition('nn.qid', $qids);
       }
-
-      $result = db_query("SELECT nn.nid, nn.qid, nq.title FROM {nodequeue_nodes} nn INNER JOIN {nodequeue_queue} nq ON nq.qid = nn.qid WHERE nn.nid IN (" . implode(', ', $nids) . ")$queue ORDER BY nq.title");
+      $result = $query->execute();
 
       foreach ($result as $queue) {
         $this->items[$queue->nid][$queue->qid]['title'] = check_plain($queue->title);
diff --git a/includes/views/nodequeue_handler_field_all_subqueues.inc b/includes/views/nodequeue_handler_field_all_subqueues.inc
index 2f63b56..9353f21 100644
--- a/includes/views/nodequeue_handler_field_all_subqueues.inc
+++ b/includes/views/nodequeue_handler_field_all_subqueues.inc
@@ -15,12 +15,20 @@ class nodequeue_handler_field_all_subqueues extends nodequeue_handler_field_all_
       }
 
       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']))) . ")";
+        $query = db_select('nodequeue_nodes', 'nn');
+        $query->innerJoin('nodequeue_queue', 'nq', 'nn.qid = nq.qid');
+        $query->innerJoin('nodequeue_subqueue', 'ns', 'nn.sqid = ns.sqid');
+        $query->fields('nn', array('nid', 'sqid', 'qid'));
+        $query->fields('nq', array('subqueue_title'));
+        $query->fields('ns', array('title'));
+        $query->orderby('ns.title');
+        $query->orderby('nq.subqueue_title');
+        $query->condition('nn.nid', $nids);
+        $qids = array_filter($this->options['qids']);
+        if (!empty($this->options['limit']) && !empty($qids)) {
+          $query->condition('nn.qid', $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");
+        $result = $query->execute();
 
         foreach ($result as $queue) {
           $title = empty($queue->subqueue_title) ? $queue->title : str_replace('%subqueue', $queue->title, $queue->subqueue_title);
-- 
1.7.4.1

