/** * Clears thread cache. * * @param string $mailbox Folder name */ function remove_thread($mailbox = null) { $this->db->query("DELETE FROM {$this->thread_table}" . " WHERE `user_id` = ?" . (strlen($mailbox) ? " AND `mailbox` = " . $this->db->quote($mailbox) : ""), $this->userid); if (strlen($mailbox)) { unset($this->icache[$mailbox]['thread']); // Thread data removed, set flag to skip SELECT query in get_thread() $this->icache[$mailbox]['thread_queried'] = true; } else { $this->icache = array(); } }
/** * Create a contact group with the given name * * @param string The group name * @return mixed False on error, array with record props in success */ function create_group($name) { $result = false; // make sure we have a unique name $name = $this->unique_groupname($name); $this->db->query("INSERT INTO " . $this->db->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->db_groups)) { $result = array('id' => $insert_id, 'name' => $name); } return $result; }
/** * Deletes the cache record(s). * * @param string $key Cache key name or pattern * @param boolean $prefix_mode Enable it to clear all keys starting * with prefix specified in $key */ private function remove_record($key = null, $prefix_mode = false) { if (!$this->db) { return; } if ($this->type != 'db') { $this->load_index(); // Remove all keys if ($key === null) { foreach ($this->index as $key) { $this->delete_record($this->ckey($key)); } $this->index = array(); } else { if ($prefix_mode) { foreach ($this->index as $idx => $k) { if (strpos($k, $key) === 0) { $this->delete_record($this->ckey($k)); unset($this->index[$idx]); } } } else { $this->delete_record($this->ckey($key)); if (($idx = array_search($key, $this->index)) !== false) { unset($this->index[$idx]); } } } $this->index_changed = true; return; } // Remove all keys (in specified cache) if ($key === null) { $where = " WHERE `cache_key` LIKE " . $this->db->quote($this->prefix . '.%'); } else { if ($prefix_mode) { $where = " WHERE `cache_key` LIKE " . $this->db->quote($this->prefix . '.' . $key . '%'); } else { $where = " WHERE `cache_key` = " . $this->db->quote($this->prefix . '.' . $key); } } $this->db->query("DELETE FROM " . $this->table . $where); }
/** * Deletes the cache record(s). * * @param string $key Cache key name or pattern * @param boolean $prefix_mode Enable it to clear all keys starting * with prefix specified in $key */ private function remove_record($key = null, $prefix_mode = false) { if (!$this->db) { return; } if ($this->type != 'db') { $this->load_index(); // Remove all keys if ($key === null) { foreach ($this->index as $key) { $this->delete_record($key, false); } $this->index = array(); } else { if ($prefix_mode) { foreach ($this->index as $k) { if (strpos($k, $key) === 0) { $this->delete_record($k); } } } else { $this->delete_record($key); } } return; } // Remove all keys (in specified cache) if ($key === null) { $where = " AND cache_key LIKE " . $this->db->quote($this->prefix . '.%'); } else { if ($prefix_mode) { $where = " AND cache_key LIKE " . $this->db->quote($this->prefix . '.' . $key . '%'); } else { $where = " AND cache_key = " . $this->db->quote($this->prefix . '.' . $key); } } $this->db->query("DELETE FROM " . $this->table . " WHERE user_id = ?" . $where, $this->userid); }