summaryrefslogtreecommitdiff
path: root/roundcubemail/program
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-10-25 10:49:53 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-10-25 10:49:53 +0000
commit5183429dba1bf65d2391678fd5c6f3f2a2875648 (patch)
tree0eaa7cf32db0edb266673565d87bfbd981abbc47 /roundcubemail/program
parent05ccc64ad13fc927036356ca2b6c20097d6f949a (diff)
- Fix setting 'virtual' flag for non-existing folders in some cases
git-svn-id: https://svn.roundcube.net/trunk@4131 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program')
-rw-r--r--roundcubemail/program/include/main.inc12
1 files changed, 10 insertions, 2 deletions
diff --git a/roundcubemail/program/include/main.inc b/roundcubemail/program/include/main.inc
index d5cebc2ad..46e45f7cb 100644
--- a/roundcubemail/program/include/main.inc
+++ b/roundcubemail/program/include/main.inc
@@ -1270,7 +1270,7 @@ function rcmail_mailbox_list($attrib)
foreach ($a_folders as $folder)
rcmail_build_folder_tree($a_mailboxes, $folder, $delimiter);
}
-
+
// allow plugins to alter the folder tree or to localize folder names
$hook = $RCMAIL->plugins->exec_hook('render_mailboxlist', array('list' => $a_mailboxes, 'delimiter' => $delimiter));
@@ -1333,10 +1333,18 @@ function rcmail_mailbox_select($p = array())
function rcmail_build_folder_tree(&$arrFolders, $folder, $delm='/', $path='')
{
$pos = strpos($folder, $delm);
+
if ($pos !== false) {
$subFolders = substr($folder, $pos+1);
$currentFolder = substr($folder, 0, $pos);
- $virtual = !isset($arrFolders[$currentFolder]);
+
+ // sometimes folder has a delimiter as the last character
+ if (empty($subFolders))
+ $virtual = false;
+ else if (!isset($arrFolders[$currentFolder]))
+ $virtual = true;
+ else
+ $virtual = $arrFolders[$currentFolder]['virtual'];
}
else {
$subFolders = false;