/** * Remove the given contact records from a certain group * * @param string Group identifier * @param array List of contact identifiers to be removed * @return int Number of deleted group members */ function remove_from_group($group_id, $ids) { if (!is_array($ids)) { $ids = explode(self::SEPARATOR, $ids); } $ids = $this->db->array2list($ids, 'integer'); $sql_result = $this->db->query("DELETE FROM " . $this->db->table_name($this->db_groupmembers) . " WHERE contactgroup_id=?" . " AND contact_id IN ({$ids})", $group_id); return $this->db->affected_rows(); }
/** * Removes message(s) from cache. * * @param string $mailbox Folder name * @param array $uids Message UIDs, NULL removes all messages */ function remove_message($mailbox = null, $uids = null) { if (!strlen($mailbox)) { $this->db->query("DELETE FROM " . get_table_name('cache_messages') . " WHERE user_id = ?", $this->userid); } else { // Remove the message from internal cache if (!empty($uids) && !is_array($uids) && ($message = $this->icache['message']) && $message['mailbox'] == $mailbox && $message['object']->uid == $uids) { $this->icache['message'] = null; } $this->db->query("DELETE FROM " . get_table_name('cache_messages') . " WHERE user_id = ?" . " AND mailbox = " . $this->db->quote($mailbox) . ($uids !== null ? " AND uid IN (" . $this->db->array2list((array) $uids, 'integer') . ")" : ""), $this->userid); } }
/** * @access private */ private function get_message_cache_index_min($key, $uids = NULL) { if (!$this->caching_enabled) { return; } if (!empty($uids) && !is_array($uids)) { if ($uids == '*' || $uids == '1:*') { $uids = NULL; } else { $uids = explode(',', $uids); } } $sql_result = $this->db->query("SELECT MIN(idx) AS minidx" . " FROM " . get_table_name('messages') . " WHERE user_id=?" . " AND cache_key=?" . (!empty($uids) ? " AND uid IN (" . $this->db->array2list($uids, 'integer') . ")" : ''), $_SESSION['user_id'], $key); if ($sql_arr = $this->db->fetch_assoc($sql_result)) { return $sql_arr['minidx']; } else { return 0; } }