* @subpackage imap
*/
-/** @ignore */
-if (! defined('SM_PATH')) define('SM_PATH','../');
-
/** UTF7 support */
require_once(SM_PATH . 'functions/imap_utf7_local.php');
-global $boxesnew;
/**
* Mailboxes class
var $mailboxname_full = '', $mailboxname_sub= '', $is_noselect = false, $is_noinferiors = false,
$is_special = false, $is_root = false, $is_inbox = false, $is_sent = false,
$is_trash = false, $is_draft = false, $mbxs = array(),
- $unseen = false, $total = false;
+ $unseen = false, $total = false, $recent = false;
function addMbx($mbx, $delimiter, $start, $specialfirst) {
$ary = explode($delimiter, $mbx->mailboxname_full);
function sqimap_mailbox_create ($imap_stream, $mailbox, $type) {
global $delimiter;
if (strtolower($type) == 'noselect') {
- $mailbox .= $delimiter;
+ $create_mailbox = $mailbox . $delimiter;
+ } else {
+ $create_mailbox = $mailbox;
}
$read_ary = sqimap_run_command($imap_stream, 'CREATE ' .
- sqimap_encode_mailbox_name($mailbox),
+ sqimap_encode_mailbox_name($create_mailbox),
true, $response, $message);
sqimap_subscribe ($imap_stream, $mailbox);
}
if ($show_only_subscribed) { $show_only_subscribed=$show_only_subscribed_folders; }
- require_once(SM_PATH . 'include/load_prefs.php');
+ //require_once(SM_PATH . 'include/load_prefs.php');
/**
* There are three main listing commands we can use in IMAP:
// get subscribed mailbox list from cache (session)
// if not there, then get it from the imap server and store in cache
- sqsession_is_active();
if (!$force) {
sqgetGlobalVar($sub_cache_name,$lsub_cache,SQ_SESSION);
}
+ $lsub_assoc_ary=array();
if (!empty($lsub_cache)) {
$lsub_assoc_ary=$lsub_cache;
} else {
$trail_del = false;
$start = 0;
-
if (isset($folder_prefix) && ($folder_prefix != '')) {
$start = substr_count($folder_prefix,$delimiter);
if (strrpos($folder_prefix, $delimiter) == (strlen($folder_prefix)-1)) {
$mbx = $oMbx->mailboxname_full;
if ($unseen_type == 2 ||
($move_to_trash && $oMbx->mailboxname_full == $trash_folder)) {
- $query = 'STATUS ' . sqimap_encode_mailbox_name($mbx) . ' (MESSAGES UNSEEN)';
+ $query = 'STATUS ' . sqimap_encode_mailbox_name($mbx) . ' (MESSAGES UNSEEN RECENT)';
} else {
- $query = 'STATUS ' . sqimap_encode_mailbox_name($mbx) . ' (UNSEEN)';
+ $query = 'STATUS ' . sqimap_encode_mailbox_name($mbx) . ' (UNSEEN RECENT)';
}
sqimap_prepare_pipelined_query($query,$tag,$aQuery,false);
} else {
- $oMbx->unseen = $oMbx->total = false;
+ $oMbx->unseen = $oMbx->total = $oMbx->recent = false;
$tag = false;
}
$oMbx->tag = $tag;
if (preg_match('/MESSAGES\s+([0-9]+)/i', $sResponse, $regs)) {
$oMbx->total = $regs[1];
}
+ if (preg_match('/RECENT\s+([0-9]+)/i', $sResponse, $regs)) {
+ $oMbx->recent = $regs[1];
+ }
+
}
unset($oMbx->tag);
}
$aStatus = sqimap_status_messages($imap_stream,$oMbx->mailboxname_full);
$oMbx->unseen = $aStatus['UNSEEN'];
$oMbx->total = $aStatus['MESSAGES'];
+ $oMbx->recent = $aStatus['RECENT'];
} else {
$oMbx->unseen = sqimap_unseen_messages($imap_stream,$oMbx->mailboxname_full);
}
}
}
}
+
+ $cnt = count($aMbxs);
+ for($i=0;$i<$cnt;++$i) {
+ $oMbx =& $aMbxs[$i];
+ unset($hook_status);
+ if (!empty($oMbx->unseen)) { $hook_status['UNSEEN']=$oMbx->unseen; }
+ if (!empty($oMbx->total)) { $hook_status['MESSAGES']=$oMbx->total; }
+ if (!empty($oMbx->recent)) { $hook_status['RECENT']=$oMbx->recent; }
+ if (!empty($hook_status))
+ {
+ $hook_status['MAILBOX']=$oMbx->mailboxname_full;
+ $hook_status['CALLER']='sqimap_get_status_mbx_tree'; // helps w/ debugging
+ do_hook_function('folder_status',$hook_status);
+ }
+ }
}
/**
return false;
}
-?>
\ No newline at end of file
+?>