public function unseenMessages($results, array $opts = array())
{
$count = $results == Horde_Imap_Client::SEARCH_RESULTS_COUNT;
if (empty($this->_sorted)) {
return $count ? 0 : array();
}
$criteria = new Horde_Imap_Client_Search_Query();
$imp_imap = $this->_mailbox->imp_imap;
if ($this->_mailbox->hideDeletedMsgs()) {
$criteria->flag(Horde_Imap_Client::FLAG_DELETED, false);
} elseif ($count) {
try {
$status_res = $imp_imap->status($this->_mailbox, Horde_Imap_Client::STATUS_UNSEEN);
return $status_res['unseen'];
} catch (IMP_Imap_Exception $e) {
return 0;
}
}
$criteria->flag(Horde_Imap_Client::FLAG_SEEN, false);
try {
$res = $imp_imap->search($this->_mailbox, $criteria, array('results' => array($results), 'sequence' => empty($opts['uids']), 'sort' => empty($opts['sort']) ? null : $opts['sort']));
return $count ? $res['count'] : $res;
} catch (IMP_Imap_Exception $e) {
return $count ? 0 : array();
}
}