Explorar o código

When using sent subfolders, the special folder option is overruled because
the parent isn't marked as a special folder. This code forces the parents
of the special folders to also be marked as special. The rest of the subs
for the parent special should follow the movement of the parent in left_main

jangliss %!s(int64=22) %!d(string=hai) anos
pai
achega
206f1e8c13
Modificáronse 1 ficheiros con 25 adicións e 0 borrados
  1. 25 0
      functions/imap_mailbox.php

+ 25 - 0
functions/imap_mailbox.php

@@ -830,6 +830,13 @@ function sqimap_fill_mailbox_tree($mbx_ary, $mbxs=false,$imap_stream) {
         if ($mbx_ary[$i]['mbx'] !='' ) {
         if ($mbx_ary[$i]['mbx'] !='' ) {
             $mbx = new mailboxes();
             $mbx = new mailboxes();
             $mailbox = $mbx_ary[$i]['mbx'];
             $mailbox = $mbx_ary[$i]['mbx'];
+
+            /* @@@ FIXME @@@
+                sent subfolders messes up using existing code as subfolders
+                were marked, but the parents were ordered somewhere else in
+                the list, despite having "special folders at top" option set.
+                Need a better method than this.
+
             switch ($mailbox) {
             switch ($mailbox) {
                 case 'INBOX':
                 case 'INBOX':
                     $mbx->is_inbox = true;
                     $mbx->is_inbox = true;
@@ -848,6 +855,24 @@ function sqimap_fill_mailbox_tree($mbx_ary, $mbxs=false,$imap_stream) {
                     $mbx->is_special = true;
                     $mbx->is_special = true;
                     break;
                     break;
             }
             }
+            
+            /FIXME/
+            */
+
+            if ($mailbox == 'INBOX') {
+                $mbx->is_inbox = true;
+                $mbx->is_special = true;
+            } elseif (stristr($trash_folder , $mailbox)) {
+                $mbx->is_trash = true;
+                $mbx->is_special = true;
+            } elseif (stristr($sent_folder , $mailbox)) {
+                $mbx->is_sent = true;
+                $mbx->is_special = true;
+            } elseif (stristr($draft_folder , $mailbox)) {
+                $mbx->is_draft = true;
+                $mbx->is_special = true;
+            }
+
 
 
             if (isset($mbx_ary[$i]['unseen'])) {
             if (isset($mbx_ary[$i]['unseen'])) {
                 $mbx->unseen = $mbx_ary[$i]['unseen'];
                 $mbx->unseen = $mbx_ary[$i]['unseen'];