| | |
| | | $count = iil_C_CountMessages($this->conn, $mailbox); |
| | | } |
| | | |
| | | if (is_array($a_mailbox_cache[$mailbox])) |
| | | if (!is_array($a_mailbox_cache[$mailbox])) |
| | | $a_mailbox_cache[$mailbox] = array(); |
| | | |
| | | $a_mailbox_cache[$mailbox][$mode] = (int)$count; |
| | |
| | | // cache is OK |
| | | if ($cache_status>0) |
| | | { |
| | | $a_index = $this->get_message_cache_index($cache_key, FALSE, $this->sort_field); |
| | | $a_index = $this->get_message_cache_index($cache_key, TRUE, $this->sort_field, $this->sort_order); |
| | | return array_values($a_index); |
| | | } |
| | | |
| | |
| | | $mailbox = $mbox ? $this->_mod_mailbox($mbox) : $this->mailbox; |
| | | |
| | | // get cached headers |
| | | if ($headers = $this->get_cached_message($mailbox.'.msg', $uid)) |
| | | if ($is_uid && ($headers = $this->get_cached_message($mailbox.'.msg', $id))) |
| | | return $headers; |
| | | |
| | | $msg_id = $is_uid ? $this->_uid2id($id) : $id; |
| | |
| | | { |
| | | $mailbox = $this->_mod_mailbox($mbox); |
| | | |
| | | // make shure mailbox exists |
| | | // make sure mailbox exists |
| | | if (in_array($mailbox, $this->_list_mailboxes())) |
| | | $saved = iil_C_Append($this->conn, $mailbox, $message); |
| | | |
| | |
| | | $to_mbox = $this->_mod_mailbox($to_mbox); |
| | | $from_mbox = $from_mbox ? $this->_mod_mailbox($from_mbox) : $this->mailbox; |
| | | |
| | | // make shure mailbox exists |
| | | // make sure mailbox exists |
| | | if (!in_array($to_mbox, $this->_list_mailboxes())) |
| | | return FALSE; |
| | | |
| | | { |
| | | if (in_array(strtolower($to_mbox), $this->default_folders)) |
| | | $this->create_mailbox($to_mbox, TRUE); |
| | | else |
| | | return FALSE; |
| | | } |
| | | |
| | | // convert the list of uids to array |
| | | $a_uids = is_string($uids) ? explode(',', $uids) : (is_array($uids) ? $uids : NULL); |
| | | |
| | |
| | | |
| | | if ($msg_count>0) |
| | | { |
| | | $this->clear_message_cache($mailbox.'.msg'); |
| | | return iil_C_ClearFolder($this->conn, $mailbox); |
| | | $cleared = iil_C_ClearFolder($this->conn, $mailbox); |
| | | |
| | | // make sure the message count cache is cleared as well |
| | | if ($cleared) |
| | | { |
| | | $this->clear_message_cache($mailbox.'.msg'); |
| | | $a_mailbox_cache = $this->get_cache('messagecount'); |
| | | unset($a_mailbox_cache[$mailbox]); |
| | | $this->update_cache('messagecount', $a_mailbox_cache); |
| | | } |
| | | |
| | | return $cleared; |
| | | } |
| | | else |
| | | return 0; |
| | |
| | | // filter folders and sort them |
| | | $sa_unsubscribed = $this->_sort_mailbox_list($a_folders); |
| | | return $sa_unsubscribed; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get quota |
| | | * added by Nuny |
| | | */ |
| | | function get_quota() |
| | | { |
| | | if ($this->get_capability('QUOTA')) |
| | | { |
| | | $result = iil_C_GetQuota($this->conn); |
| | | return sprintf("%.2fMB / %.2fMB (%.0f%%)", $result["used"] / 1000.0, $result["total"] / 1000.0, $result["percent"]); |
| | | } |
| | | else |
| | | return 'unknown'; |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | function get_message_cache_index($key, $force=FALSE, $sort_col='idx') |
| | | function get_message_cache_index($key, $force=FALSE, $sort_col='idx', $sort_order='ASC') |
| | | { |
| | | static $sa_message_index = array(); |
| | | |
| | |
| | | FROM ".get_table_name('messages')." |
| | | WHERE user_id=? |
| | | AND cache_key=? |
| | | ORDER BY ".$sort_col." ASC", |
| | | ORDER BY ".$this->db->quote_identifier($sort_col)." ".$sort_order, |
| | | $_SESSION['user_id'], |
| | | $key); |
| | | |
| | |
| | | |
| | | $this->db->query( |
| | | "INSERT INTO ".get_table_name('messages')." |
| | | (user_id, del, cache_key, idx, uid, subject, ".$this->db->quoteIdentifier('from').", ".$this->db->quoteIdentifier('to').", cc, date, size, headers) |
| | | VALUES (?, 0, ?, ?, ?, ?, ?, ?, ?, ".$this->db->fromunixtime($headers->timestamp).", ?, ?)", |
| | | (user_id, del, cache_key, created, idx, uid, subject, ".$this->db->quoteIdentifier('from').", ".$this->db->quoteIdentifier('to').", cc, date, size, headers) |
| | | VALUES (?, 0, ?, now(), ?, ?, ?, ?, ?, ?, ".$this->db->fromunixtime($headers->timestamp).", ?, ?)", |
| | | $_SESSION['user_id'], |
| | | $key, |
| | | $index, |
| | | $headers->uid, |
| | | substr($this->decode_header($headers->subject, TRUE), 0, 128), |
| | | substr($this->decode_header($headers->from, TRUE), 0, 128), |
| | | substr($this->decode_header($headers->to, TRUE), 0, 128), |
| | | substr($this->decode_header($headers->cc, TRUE), 0, 128), |
| | | (string)substr($this->decode_header($headers->subject, TRUE), 0, 128), |
| | | (string)substr($this->decode_header($headers->from, TRUE), 0, 128), |
| | | (string)substr($this->decode_header($headers->to, TRUE), 0, 128), |
| | | (string)substr($this->decode_header($headers->cc, TRUE), 0, 128), |
| | | (int)$headers->size, |
| | | serialize($headers)); |
| | | } |
| | |
| | | return trim($output); |
| | | } |
| | | |
| | | ?> |
| | | ?> |