public function listMailboxes($pattern, $mode = Horde_Imap_Client::MBOX_ALL,
$options = array())
{
- $ret = $this->_listMailboxes(Horde_Imap_Client_Utf7imap::Utf8ToUtf7Imap($pattern), $mode, $options);
+ $pattern = is_array($pattern)
+ ? array_map(array('Horde_Imap_Client_Utf7imap', 'Utf8ToUtf7Imap'), $pattern)
+ : Horde_Imap_Client_Utf7imap::Utf8ToUtf7Imap($pattern);
+
+ $ret = $this->_listMailboxes($pattern, $mode, $options);
if (!empty($options['sort'])) {
Horde_Imap_Client_Sort::sortMailboxes($ret, array('delimiter' => empty($options['sort_delimiter']) ? '.' : $options['sort_delimiter'], 'index' => false, 'keysort' => empty($options['flat'])));
if (is_array($pattern)) {
$cmd .= '(';
foreach ($pattern as $val) {
- $cmd .= $this->utils->escape($pattern) . ' ';
+ $cmd .= $this->utils->escape($val) . ' ';
}
$cmd = rtrim($cmd) . ')';
} else {
$cmd .= ' RETURN (' . implode(' ', $return_opts) . ')';
}
} else {
+ if (is_array($pattern)) {
+ $return_array = array();
+ foreach ($pattern as $val) {
+ $return_array = array_merge($return_array, $this->_getMailboxList($val, $mode, $options, $subscribed));
+ }
+ return $return_array;
+ }
+
$cmd = (($mode == Horde_Imap_Client::MBOX_SUBSCRIBED) ? 'LSUB' : 'LIST') . ' "" ' . $this->utils->escape($pattern);
}