From 982e0b0b898ab2227d1493fe32ea51f85ecec294 Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 26 May 2010 11:56:47 +0000 Subject: - Redesigned how rcube_contacts handles table names --- program/include/rcube_contacts.php | 72 +++++++++++++------------------------- 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php index 4676a2ce6..5553a23ad 100644 --- a/program/include/rcube_contacts.php +++ b/program/include/rcube_contacts.php @@ -28,11 +28,10 @@ class rcube_contacts extends rcube_addressbook { // protected for backward compat. with some plugins - // deprecated: re-implement $this->get_table_name() instead - protected $db_name = ''; - protected $db_groups = ''; - protected $db_groupmembers = ''; - + protected $db_name = 'contacts'; + protected $db_groups = 'contactgroups'; + protected $db_groupmembers = 'contactgroupmembers'; + private $db = null; private $user_id = 0; private $filter = null; @@ -42,7 +41,7 @@ class rcube_contacts extends rcube_addressbook private $cache; private $table_cols = array('name', 'email', 'firstname', 'surname', 'vcard'); - /** public properties */ + // public properties var $primary_key = 'contact_id'; var $readonly = false; var $groups = true; @@ -61,10 +60,6 @@ class rcube_contacts extends rcube_addressbook function __construct($dbconn, $user) { $this->db = $dbconn; - $this->db_name = $this->get_table_name('contacts'); - $this->db_groups = $this->get_table_name('contactgroups'); - $this->db_groupmembers = $this->get_table_name('contactgroupmembers'); - $this->user_id = $user; $this->ready = $this->db && !$this->db->is_error(); } @@ -133,7 +128,7 @@ class rcube_contacts extends rcube_addressbook $sql_filter = $search ? " AND " . $this->db->ilike('name', '%'.$search.'%') : ''; $sql_result = $this->db->query( - "SELECT * FROM ".$this->db_groups. + "SELECT * FROM ".get_table_name($this->db_groups). " WHERE del<>1". " AND user_id=?". $sql_filter. @@ -171,11 +166,11 @@ class rcube_contacts extends rcube_addressbook $length = $subset != 0 ? abs($subset) : $this->page_size; if ($this->group_id) - $join = " LEFT JOIN ".$this->db_groupmembers." AS m". + $join = " LEFT JOIN ".get_table_name($this->db_groupmembers)." AS m". " ON (m.contact_id = c.".$this->primary_key.")"; $sql_result = $this->db->limitquery( - "SELECT * FROM ".$this->db_name." AS c" . + "SELECT * FROM ".get_table_name($this->db_name)." AS c" . $join . " WHERE c.del<>1" . " AND c.user_id=?" . @@ -288,13 +283,13 @@ class rcube_contacts extends rcube_addressbook private function _count() { if ($this->group_id) - $join = " LEFT JOIN ".$this->db_groupmembers." AS m". + $join = " LEFT JOIN ".get_table_name($this->db_groupmembers)." 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". + " FROM ".get_table_name($this->db_name)." AS c". $join. " WHERE c.del<>1". " AND c.user_id=?". @@ -336,7 +331,7 @@ class rcube_contacts extends rcube_addressbook return $assoc ? $first : $this->result; $this->db->query( - "SELECT * FROM ".$this->db_name. + "SELECT * FROM ".get_table_name($this->db_name). " WHERE contact_id=?". " AND user_id=?". " AND del<>1", @@ -380,12 +375,12 @@ class rcube_contacts extends rcube_addressbook if (!$existing->count && !empty($a_insert_cols)) { $this->db->query( - "INSERT INTO ".$this->db_name. + "INSERT INTO ".get_table_name($this->db_name). " (user_id, changed, del, ".join(', ', $a_insert_cols).")". " VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")" ); - $insert_id = $this->db->insert_id($this->get_sequence_name('contacts')); + $insert_id = $this->db->insert_id($this->db_name); } // also add the newly created contact to the active group @@ -431,7 +426,7 @@ class rcube_contacts extends rcube_addressbook if (!empty($write_sql)) { $this->db->query( - "UPDATE ".$this->db_name. + "UPDATE ".get_table_name($this->db_name). " SET changed=".$this->db->now().", ".join(', ', $write_sql). " WHERE contact_id=?". " AND user_id=?". @@ -461,7 +456,7 @@ class rcube_contacts extends rcube_addressbook // flag record as deleted $this->db->query( - "UPDATE ".$this->db_name. + "UPDATE ".get_table_name($this->db_name). " SET del=1, changed=".$this->db->now(). " WHERE user_id=?". " AND contact_id IN ($ids)", @@ -479,7 +474,7 @@ class rcube_contacts extends rcube_addressbook */ function delete_all() { - $this->db->query("DELETE FROM {$this->db_name} WHERE user_id=?", $this->user_id); + $this->db->query("DELETE FROM ".get_table_name($this->db_name)." WHERE user_id = ?", $this->user_id); $this->cache = null; return $this->db->affected_rows(); } @@ -499,12 +494,12 @@ class rcube_contacts extends rcube_addressbook $name = $this->unique_groupname($name); $this->db->query( - "INSERT INTO ".$this->db_groups. + "INSERT INTO ".get_table_name($this->db_groups). " (user_id, changed, name)". " VALUES (".intval($this->user_id).", ".$this->db->now().", ".$this->db->quote($name).")" ); - if ($insert_id = $this->db->insert_id($this->get_sequence_name('contactgroups'))) + if ($insert_id = $this->db->insert_id($this->db_groups)) $result = array('id' => $insert_id, 'name' => $name); return $result; @@ -521,7 +516,7 @@ class rcube_contacts extends rcube_addressbook { // flag group record as deleted $sql_result = $this->db->query( - "UPDATE ".$this->db_groups. + "UPDATE ".get_table_name($this->db_groups). " SET del=1, changed=".$this->db->now(). " WHERE contactgroup_id=?", $gid @@ -546,7 +541,7 @@ class rcube_contacts extends rcube_addressbook $name = $this->unique_groupname($newname); $sql_result = $this->db->query( - "UPDATE ".$this->db_groups. + "UPDATE ".get_table_name($this->db_groups). " SET name=?, changed=".$this->db->now(). " WHERE contactgroup_id=?", $name, $gid @@ -572,7 +567,7 @@ class rcube_contacts extends rcube_addressbook foreach ($ids as $contact_id) { $sql_result = $this->db->query( - "SELECT 1 FROM ".$this->db_groupmembers. + "SELECT 1 FROM ".get_table_name($this->db_groupmembers). " WHERE contactgroup_id=?". " AND contact_id=?", $group_id, @@ -581,7 +576,7 @@ class rcube_contacts extends rcube_addressbook if (!$this->db->num_rows($sql_result)) { $this->db->query( - "INSERT INTO ".$this->db_groupmembers. + "INSERT INTO ".get_table_name($this->db_groupmembers). " (contactgroup_id, contact_id, created)". " VALUES (?, ?, ".$this->db->now().")", $group_id, @@ -612,7 +607,7 @@ class rcube_contacts extends rcube_addressbook $ids = $this->db->array2list($ids, 'integer'); $sql_result = $this->db->query( - "DELETE FROM ".$this->db_groupmembers. + "DELETE FROM ".get_table_name($this->db_groupmembers). " WHERE contactgroup_id=?". " AND contact_id IN ($ids)", $group_id @@ -635,7 +630,7 @@ class rcube_contacts extends rcube_addressbook do { $sql_result = $this->db->query( - "SELECT 1 FROM ".$this->db_groups. + "SELECT 1 FROM ".get_table_name($this->db_groups). " WHERE del<>1". " AND user_id=?". " AND name=?", @@ -650,23 +645,4 @@ class rcube_contacts extends rcube_addressbook return $checkname; } - - /** - * Wrapper for global get_table_name() which can be re-implemented - * by a derived class - */ - protected function get_table_name($table) - { - return get_table_name($table); - } - - /** - * Wrapper for global get_sequence_name() which can be re-implemented - * by a derived class - */ - protected function get_sequence_name($table) - { - return get_sequence_name($table); - } - } -- cgit v1.2.3