diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-10-25 10:49:53 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-10-25 10:49:53 +0000 |
| commit | 5183429dba1bf65d2391678fd5c6f3f2a2875648 (patch) | |
| tree | 0eaa7cf32db0edb266673565d87bfbd981abbc47 | |
| parent | 05ccc64ad13fc927036356ca2b6c20097d6f949a (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
| -rw-r--r-- | roundcubemail/program/include/main.inc | 12 |
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; |
