Ignore:
Timestamp:
May 26, 2010 7:56:47 AM (3 years ago)
Author:
alec
Message:
  • Redesigned how rcube_contacts handles table names
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/include/rcube_contacts.php

    r3668 r3670  
    2929{ 
    3030    // protected for backward compat. with some plugins 
    31     // deprecated: re-implement $this->get_table_name() instead 
    32     protected $db_name = ''; 
    33     protected $db_groups = ''; 
    34     protected $db_groupmembers = ''; 
    35      
     31    protected $db_name = 'contacts'; 
     32    protected $db_groups = 'contactgroups'; 
     33    protected $db_groupmembers = 'contactgroupmembers'; 
     34 
    3635    private $db = null; 
    3736    private $user_id = 0; 
     
    4342    private $table_cols = array('name', 'email', 'firstname', 'surname', 'vcard'); 
    4443 
    45     /** public properties */ 
     44    // public properties 
    4645    var $primary_key = 'contact_id'; 
    4746    var $readonly = false; 
     
    6261    { 
    6362        $this->db = $dbconn; 
    64         $this->db_name = $this->get_table_name('contacts'); 
    65         $this->db_groups = $this->get_table_name('contactgroups'); 
    66         $this->db_groupmembers = $this->get_table_name('contactgroupmembers'); 
    67          
    6863        $this->user_id = $user; 
    6964        $this->ready = $this->db && !$this->db->is_error(); 
     
    134129 
    135130        $sql_result = $this->db->query( 
    136             "SELECT * FROM ".$this->db_groups. 
     131            "SELECT * FROM ".get_table_name($this->db_groups). 
    137132            " WHERE del<>1". 
    138133            " AND user_id=?". 
     
    172167 
    173168        if ($this->group_id) 
    174             $join = " LEFT JOIN ".$this->db_groupmembers." AS m". 
     169            $join = " LEFT JOIN ".get_table_name($this->db_groupmembers)." AS m". 
    175170                " ON (m.contact_id = c.".$this->primary_key.")"; 
    176171 
    177172        $sql_result = $this->db->limitquery( 
    178             "SELECT * FROM ".$this->db_name." AS c" . 
     173            "SELECT * FROM ".get_table_name($this->db_name)." AS c" . 
    179174            $join . 
    180175            " WHERE c.del<>1" . 
     
    289284    { 
    290285        if ($this->group_id) 
    291             $join = " LEFT JOIN ".$this->db_groupmembers." AS m". 
     286            $join = " LEFT JOIN ".get_table_name($this->db_groupmembers)." AS m". 
    292287                " ON (m.contact_id=c.".$this->primary_key.")"; 
    293288 
     
    295290        $sql_result = $this->db->query( 
    296291            "SELECT COUNT(c.contact_id) AS rows". 
    297             " FROM ".$this->db_name." AS c". 
     292            " FROM ".get_table_name($this->db_name)." AS c". 
    298293                $join. 
    299294            " WHERE c.del<>1". 
     
    337332 
    338333        $this->db->query( 
    339             "SELECT * FROM ".$this->db_name. 
     334            "SELECT * FROM ".get_table_name($this->db_name). 
    340335            " WHERE contact_id=?". 
    341336                " AND user_id=?". 
     
    381376        if (!$existing->count && !empty($a_insert_cols)) { 
    382377            $this->db->query( 
    383                 "INSERT INTO ".$this->db_name. 
     378                "INSERT INTO ".get_table_name($this->db_name). 
    384379                " (user_id, changed, del, ".join(', ', $a_insert_cols).")". 
    385380                " VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")" 
    386381            ); 
    387382 
    388             $insert_id = $this->db->insert_id($this->get_sequence_name('contacts')); 
     383            $insert_id = $this->db->insert_id($this->db_name); 
    389384        } 
    390385 
     
    432427        if (!empty($write_sql)) { 
    433428            $this->db->query( 
    434                 "UPDATE ".$this->db_name. 
     429                "UPDATE ".get_table_name($this->db_name). 
    435430                " SET changed=".$this->db->now().", ".join(', ', $write_sql). 
    436431                " WHERE contact_id=?". 
     
    462457        // flag record as deleted 
    463458        $this->db->query( 
    464             "UPDATE ".$this->db_name. 
     459            "UPDATE ".get_table_name($this->db_name). 
    465460            " SET del=1, changed=".$this->db->now(). 
    466461            " WHERE user_id=?". 
     
    480475    function delete_all() 
    481476    { 
    482         $this->db->query("DELETE FROM {$this->db_name} WHERE user_id=?", $this->user_id); 
     477        $this->db->query("DELETE FROM ".get_table_name($this->db_name)." WHERE user_id = ?", $this->user_id); 
    483478        $this->cache = null; 
    484479        return $this->db->affected_rows(); 
     
    500495 
    501496        $this->db->query( 
    502             "INSERT INTO ".$this->db_groups. 
     497            "INSERT INTO ".get_table_name($this->db_groups). 
    503498            " (user_id, changed, name)". 
    504499            " VALUES (".intval($this->user_id).", ".$this->db->now().", ".$this->db->quote($name).")" 
    505500        ); 
    506501 
    507         if ($insert_id = $this->db->insert_id($this->get_sequence_name('contactgroups'))) 
     502        if ($insert_id = $this->db->insert_id($this->db_groups)) 
    508503            $result = array('id' => $insert_id, 'name' => $name); 
    509504 
     
    522517        // flag group record as deleted 
    523518        $sql_result = $this->db->query( 
    524             "UPDATE ".$this->db_groups. 
     519            "UPDATE ".get_table_name($this->db_groups). 
    525520            " SET del=1, changed=".$this->db->now(). 
    526521            " WHERE contactgroup_id=?", 
     
    547542 
    548543        $sql_result = $this->db->query( 
    549             "UPDATE ".$this->db_groups. 
     544            "UPDATE ".get_table_name($this->db_groups). 
    550545            " SET name=?, changed=".$this->db->now(). 
    551546            " WHERE contactgroup_id=?", 
     
    573568        foreach ($ids as $contact_id) { 
    574569            $sql_result = $this->db->query( 
    575                 "SELECT 1 FROM ".$this->db_groupmembers. 
     570                "SELECT 1 FROM ".get_table_name($this->db_groupmembers). 
    576571                " WHERE contactgroup_id=?". 
    577572                    " AND contact_id=?", 
     
    582577            if (!$this->db->num_rows($sql_result)) { 
    583578                $this->db->query( 
    584                     "INSERT INTO ".$this->db_groupmembers. 
     579                    "INSERT INTO ".get_table_name($this->db_groupmembers). 
    585580                    " (contactgroup_id, contact_id, created)". 
    586581                    " VALUES (?, ?, ".$this->db->now().")", 
     
    613608 
    614609        $sql_result = $this->db->query( 
    615             "DELETE FROM ".$this->db_groupmembers. 
     610            "DELETE FROM ".get_table_name($this->db_groupmembers). 
    616611            " WHERE contactgroup_id=?". 
    617612                " AND contact_id IN ($ids)", 
     
    636631        do { 
    637632            $sql_result = $this->db->query( 
    638                 "SELECT 1 FROM ".$this->db_groups. 
     633                "SELECT 1 FROM ".get_table_name($this->db_groups). 
    639634                " WHERE del<>1". 
    640635                    " AND user_id=?". 
     
    651646    } 
    652647 
    653  
    654     /** 
    655      * Wrapper for global get_table_name() which can be re-implemented 
    656      * by a derived class 
    657      */ 
    658     protected function get_table_name($table) 
    659     { 
    660         return get_table_name($table); 
    661     } 
    662  
    663     /** 
    664      * Wrapper for global get_sequence_name() which can be re-implemented 
    665      * by a derived class 
    666      */ 
    667     protected function get_sequence_name($table) 
    668     { 
    669         return get_sequence_name($table); 
    670     } 
    671  
    672648} 
Note: See TracChangeset for help on using the changeset viewer.