SORT and THREAD handling in search
[squirrelmail.git] / src / folders.php
index 2fe3a7130f1d375948b1c858f5494e681c1a4ebf..7e4966eeba582d437c50f5c709e29b972a0eac4c 100644 (file)
  * Folders.
  *
  * $Id$
+ * @package squirrelmail
  */
 
-/* Path for SquirrelMail required files. */
+/** Path for SquirrelMail required files. */
 define('SM_PATH','../');
 
 /* SquirrelMail required files. */
@@ -138,6 +139,8 @@ echo html_tag( 'tr',
         ) ."\n";
 
 /** count special folders **/
+
+// FIX ME, why not check if the folders are defined IMHO move_to_sent, move_to_trash has nothing todo with it
 $count_special_folders = 0;
 $num_max = 1;
 if (strtolower($imap_server_type) == "courier" || $move_to_trash) {
@@ -149,25 +152,36 @@ if ($move_to_sent) {
 if ($save_as_draft) {
     $num_max++;
 }
+
+// What if move_to_sent = false and $sent_folder is set? Should it still be skipped?
+
 for ($p = 0, $cnt = count($boxes); $p < $cnt && $count_special_folders < $num_max; $p++) {
-    if (strtolower($boxes[$p]['unformatted']) == 'inbox')
-        $count_special_folders++;
-    else if (strtolower($imap_server_type) == 'courier' &&
-            strtolower($boxes[$p]['unformatted']) == 'inbox.trash') {
-        $count_special_folders++;
-    }
-    else if ($boxes[$p]['unformatted'] == $trash_folder && $trash_folder) {
-        $count_special_folders++;
-        array_push($skip_folders, strtolower($trash_folder));
-    }
-    else if ($boxes[$p]['unformatted'] == $sent_folder && $sent_folder) {
-        $count_special_folders++;
-        array_push($skip_folders, strtolower($sent_folder));
-    }
-    else if ($boxes[$p]['unformatted'] == $draft_folder && $draft_folder) {
-        $count_special_folders++;
-        array_push($skip_folders, strtolower($draft_folder));
-    }
+    switch ($boxes[$p]['unformatted'])
+    {
+       case (strtoupper($boxes[$p]['unformatted']) == 'INBOX'):
+          ++$count_special_folders;
+         $skip_folders[] = $boxes[$p]['unformatted'];
+         break;
+       // FIX ME inbox.trash should be set in conf.pl
+       case 'inbox.trash':
+          if (strtolower($imap_server_type) == 'courier') {
+             ++$count_special_folders;
+         }
+         break;
+       case $trash_folder:
+           ++$count_special_folders;
+           $skip_folders[] = $trash_folder;
+          break;
+       case $sent_folder:
+           ++$count_special_folders;
+           $skip_folders[] = $sent_folder;
+          break;
+       case $draft_folder:
+           ++$count_special_folders;
+           $skip_folders[] = $draft_folder;
+          break;
+       default: break;
+    }    
 }
 
 
@@ -250,9 +264,9 @@ if ($count_special_folders < count($boxes)) {
             ($boxes[$i]["unformatted"] != $trash_folder) &&
             ($boxes[$i]["unformatted"] != $sent_folder) &&
             ($boxes[$i]["unformatted"] != $draft_folder)) {
-            $box = $boxes[$i]["unformatted-dm"];
+            $box = htmlspecialchars($boxes[$i]["unformatted-dm"]);
             $box2 = str_replace(' ', '&nbsp;',
-                                imap_utf7_decode_local($boxes[$i]["unformatted-disp"]));
+                                htmlspecialchars(imap_utf7_decode_local($boxes[$i]["unformatted-disp"])));
             echo "         <OPTION VALUE=\"$box\">$box2\n";
         }
     }
@@ -284,8 +298,8 @@ if(!$no_list_for_subscribe) {
         }
     }
     if ($use_folder == true) {
-        $box[$q] = $boxes_all[$i]['unformatted-dm'];
-        $box2[$q] = imap_utf7_decode_local($boxes_all[$i]['unformatted-disp']);
+        $box[$q] = htmlspecialchars($boxes_all[$i]['unformatted-dm']);
+        $box2[$q] = htmlspecialchars(imap_utf7_decode_local($boxes_all[$i]['unformatted-disp']));
         $q++;
     }
   }