From 7c9d922b96f9a88b350d6e07f5bde84ccc40f9b0 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 02 Mar 2010 16:27:53 -0500
Subject: [PATCH] New recent check based on UIDs

---
 program/include/rcube_contacts.php |   64 ++++++--------------------------
 1 files changed, 12 insertions(+), 52 deletions(-)

diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php
index 0c0f932..23f86e8 100644
--- a/program/include/rcube_contacts.php
+++ b/program/include/rcube_contacts.php
@@ -5,7 +5,7 @@
  | program/include/rcube_contacts.php                                    |
  |                                                                       |
  | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2006-2008, RoundCube Dev. - Switzerland                 |
+ | Copyright (C) 2006-2009, RoundCube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_contacts.inc 328 2006-08-30 17:41:21Z thomasb $
+ $Id$
 
 */
 
@@ -25,7 +25,7 @@
  *
  * @package Addressbook
  */
-class rcube_contacts
+class rcube_contacts extends rcube_addressbook
 {
   var $db = null;
   var $db_name = '';
@@ -34,7 +34,7 @@
   var $result = null;
   var $search_fields;
   var $search_string;
-  var $table_cols = array('name', 'email', 'firstname', 'surname');
+  var $table_cols = array('name', 'email', 'firstname', 'surname', 'vcard');
   
   /** public properties */
   var $primary_key = 'contact_id';
@@ -56,40 +56,6 @@
     $this->db_name = get_table_name('contacts');
     $this->user_id = $user;
     $this->ready = $this->db && !$this->db->is_error();
-  }
-
-  /**
-   * PHP 4 object constructor
-   *
-   * @see rcube_contacts::__construct()
-   */
-  function rcube_contacts($dbconn, $user)
-  {
-    $this->__construct($dbconn, $user);
-  }
-
-
-  /**
-   * Set internal list page
-   *
-   * @param  number  Page number to list
-   * @access public
-   */
-  function set_page($page)
-  {
-    $this->list_page = (int)$page;
-  }
-
-
-  /**
-   * Set internal page size
-   *
-   * @param  number  Number of messages to display on one page
-   * @access public
-   */
-  function set_pagesize($size)
-  {
-    $this->page_size = (int)$size;
   }
 
 
@@ -125,13 +91,6 @@
     $this->search_fields = null;
     $this->search_string = null;
   }
-  
-  
-  /**
-   * Close connection to source
-   * Called on script shutdown
-   */
-  function close(){}
   
   
   /**
@@ -182,6 +141,7 @@
    *
    * @param array   List of fields to search in
    * @param string  Search value
+   * @param boolean True for strict (=), False for partial (LIKE) matching
    * @param boolean True if results are requested, False if count only
    * @return Indexed list of contact records and 'count' value
    */
@@ -195,7 +155,7 @@
     {
       if ($col == 'ID' || $col == $this->primary_key)
       {
-        $ids = !is_array($value) ? split(',', $value) : $value;
+        $ids = !is_array($value) ? explode(',', $value) : $value;
         $add_where[] = $this->primary_key.' IN ('.join(',', $ids).')';
       }
       else if ($strict)
@@ -243,7 +203,7 @@
    *
    * @return Result array or NULL if nothing selected yet
    */
-  function get_result($as_res=true)
+  function get_result()
   {
     return $this->result;
   }
@@ -303,18 +263,18 @@
         $a_insert_cols[] = $this->db->quoteIdentifier($col);
         $a_insert_values[] = $this->db->quote($save_data[$col]);
       }
-    
+
     if (!$existing->count && !empty($a_insert_cols))
     {
       $this->db->query(
         "INSERT INTO ".$this->db_name."
          (user_id, changed, del, ".join(', ', $a_insert_cols).")
-         VALUES (?, ".$this->db->now().", 0, ".join(', ', $a_insert_values).")",
-        $this->user_id);
+         VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")"
+        );
         
-      $insert_id = $this->db->insert_id(get_sequence_name('contacts'));
+      $insert_id = $this->db->insert_id('contacts');
     }
-    
+
     return $insert_id;
   }
 

--
Gitblit v1.9.1