minor improvment on reading headers

release-0.6
svncommit 21 years ago
parent 2c12662ad4
commit 17fc718915

@ -297,11 +297,9 @@ class rcube_imap
function _list_headers($mailbox='', $page=NULL, $sort_field='date', $sort_order='DESC')
{
$max = $this->_messagecount($mailbox /*, 'ALL', TRUE*/);
$a_out = array();
if (!strlen($mailbox))
return $a_out;
return array();
// get cached headers
$a_msg_headers = $this->get_cache($mailbox.'.msg');
@ -314,7 +312,8 @@ class rcube_imap
$a_header_index = iil_C_FetchHeaders($this->conn, $mailbox, "1:$max");
$a_msg_headers = array();
foreach ($a_header_index as $i => $headers)
$a_msg_headers[$headers->uid] = $headers;
if (!$headers->deleted)
$a_msg_headers[$headers->uid] = $headers;
// print "/**** fetch headers ****/\n";
}
@ -323,22 +322,19 @@ class rcube_imap
// sort headers by a specific col
$a_headers = iil_SortHeaders($a_msg_headers, $sort_field, $sort_order);
// free memory
unset($a_msg_headers);
// write headers list to cache
if (!$headers_cached)
$this->update_cache($mailbox.'.msg', $a_msg_headers);
if (is_array($a_headers))
foreach ($a_headers as $header)
if (!$header->deleted)
$a_out[] = $header;
$this->update_cache($mailbox.'.msg', $a_headers);
// return complete list of messages
if (strtolower($page)=='all')
return $a_out;
return $a_headers;
$start_msg = ($this->list_page-1) * $this->page_size;
return array_slice($a_out, $start_msg, $this->page_size);
return array_slice($a_headers, $start_msg, $this->page_size);
}

Loading…
Cancel
Save