X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Ffolders.php;h=7e4966eeba582d437c50f5c709e29b972a0eac4c;hb=8f6f9ba5df6491d396aa690dcf3e5b9070a565ca;hp=07b636f4af7ade79891dee1b5ccf8bca685fcf16;hpb=625c8b787b79d07a1e53ba05213f66451d73651e;p=squirrelmail.git
diff --git a/src/folders.php b/src/folders.php
index 07b636f4..7e4966ee 100644
--- a/src/folders.php
+++ b/src/folders.php
@@ -3,7 +3,7 @@
/**
* folders.php
*
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2003 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* Handles all interaction between the user and the other folder
@@ -11,14 +11,14 @@
* Folders.
*
* $Id$
+ * @package squirrelmail
*/
-/* Path for SquirrelMail required files. */
+/** Path for SquirrelMail required files. */
define('SM_PATH','../');
/* SquirrelMail required files. */
require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/imap_utf7_decode_local.php');
require_once(SM_PATH . 'functions/imap.php');
require_once(SM_PATH . 'functions/plugin.php');
require_once(SM_PATH . 'functions/html.php');
@@ -27,13 +27,12 @@ displayPageHeader($color, 'None');
/* get globals we may need */
-$username = $_SESSION['username'];
-$key = $_COOKIE['key'];
-$delimiter = $_SESSION['delimiter'];
-$onetimepad = $_SESSION['onetimepad'];
-if (isset($_GET['success'])) {
- $success = $_GET['success'];
-}
+sqgetGlobalVar('username', $username, SQ_SESSION);
+sqgetGlobalVar('key', $key, SQ_COOKIE);
+sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
+sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION);
+
+sqgetGlobalVar('success', $success, SQ_GET);
/* end of get globals */
@@ -102,22 +101,29 @@ echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="4" cellspaci
_("as a subfolder of").
'
'.
"\n";
if ($show_contain_subfolders_option) {
@@ -133,29 +139,49 @@ 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) {
- $num_max++;
+ $num_max++;
}
if ($move_to_sent) {
- $num_max++;
+ $num_max++;
}
if ($save_as_draft) {
- $num_max++;
+ $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++;
- else if ($boxes[$p]['unformatted'] == $sent_folder && $sent_folder)
- $count_special_folders++;
- else if ($boxes[$p]['unformatted'] == $draft_folder && $draft_folder)
- $count_special_folders++;
+ 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;
+ }
}
@@ -171,7 +197,11 @@ if ($count_special_folders < count($boxes)) {
. "\n".
"\n"
. '$box2\n";
}
}
@@ -266,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++;
}
}