From 821a560f19543424344f3d75ff1eacc8c27e7ce7 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 22 Apr 2010 09:58:41 -0400
Subject: [PATCH] - one improvement more

---
 program/include/rcube_contacts.php |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php
index cc610bc..7014415 100644
--- a/program/include/rcube_contacts.php
+++ b/program/include/rcube_contacts.php
@@ -163,11 +163,12 @@
         $length = $subset != 0 ? abs($subset) : $this->page_size;
 
         if ($this->group_id)
-            $join = "LEFT JOIN ".get_table_name('contactgroupmembers')." AS m".
+            $join = " LEFT JOIN ".get_table_name('contactgroupmembers')." AS m".
                 " ON (m.contact_id = c.".$this->primary_key.")";
 
         $sql_result = $this->db->limitquery(
-            "SELECT * FROM ".$this->db_name." AS c ".$join .
+            "SELECT * FROM ".$this->db_name." AS c" .
+            $join .
             " WHERE c.del<>1" .
                 " AND c.user_id=?" .
                 ($this->group_id ? " AND m.contactgroup_id=?" : "").
@@ -194,6 +195,8 @@
         else if ($this->list_page <= 1) {
             if ($cnt < $this->page_size && $subset == 0)
                 $this->result->count = $cnt;
+            else if (isset($this->cache['count']))
+                $this->result->count = $this->cache['count'];
             else
                 $this->result->count = $this->_count();
         }
@@ -263,14 +266,15 @@
     private function _count()
     {
         if ($this->group_id)
-            $join = "LEFT JOIN ".get_table_name('contactgroupmembers')." AS m".
+            $join = " LEFT JOIN ".get_table_name('contactgroupmembers')." AS m".
                 " ON (m.contact_id=c.".$this->primary_key.")";
       
         // count contacts for this user
         $sql_result = $this->db->query(
             "SELECT COUNT(c.contact_id) AS rows".
-            " FROM ".$this->db_name." AS c ".$join.
-            " WHERE  c.del<>1".
+            " FROM ".$this->db_name." AS c".
+                $join.
+            " WHERE c.del<>1".
             " AND c.user_id=?".
             ($this->group_id ? " AND m.contactgroup_id=?" : "").
             ($this->filter ? " AND (".$this->filter.")" : ""),

--
Gitblit v1.9.1