示例#1
0
 /**
  * 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();
 }
示例#2
0
 /**
  * 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);
     }
 }
示例#3
0
 /**
  * @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;
     }
 }