X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Ffolders.php;h=cc1fc279b90176b81929929231230dcff095284c;hb=0d8a462c52d74cd93af7376ae5bbc994f4699054;hp=a6c8f63900ca53e74769938c52b488ebbca37910;hpb=b7f83b61539e8952b9b337f167870aa99eb772f8;p=squirrelmail.git diff --git a/src/folders.php b/src/folders.php index a6c8f639..cc1fc279 100644 --- a/src/folders.php +++ b/src/folders.php @@ -3,42 +3,44 @@ /** * folders.php * - * Copyright (c) 1999-2002 The SquirrelMail Project Team + * Copyright (c) 1999-2004 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 * scripts which do most of the work. Also handles the Special * Folders. * - * $Id$ + * @version $Id$ + * @package squirrelmail */ -/* Path for SquirrelMail required files. */ +/** + * Path for SquirrelMail required files. + * @ignore + */ 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/array.php'); require_once(SM_PATH . 'functions/plugin.php'); require_once(SM_PATH . 'functions/html.php'); +require_once(SM_PATH . 'functions/forms.php'); 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 */ -echo '
' . +echo '
' . html_tag( 'table', '', 'center', $color[0], 'width="95%" cellpadding="1" cellspacing="0" border="0"' ) . html_tag( 'tr' ) . html_tag( 'td', '', 'center' ) . '' . _("Folders") . '' . @@ -72,23 +74,23 @@ if ( isset($success) && $success ) { break; } - $td_str .= '
'; + $td_str .= '
'; echo html_tag( 'table', html_tag( 'tr', html_tag( 'td', $td_str . - '' . + '' . _("refresh folder list") . '' , 'center' ) ) , 'center', '', 'width="100%" cellpadding="4" cellspacing="0" border="0"' ); } -echo "\n
"; +echo "\n
"; $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0); -$boxes = sqimap_mailbox_list($imapConnection); +$boxes = sqimap_mailbox_list($imapConnection,true); /** CREATING FOLDERS **/ echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="4" cellspacing="0" border="0"' ) . @@ -97,74 +99,91 @@ echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="4" cellspaci ) . html_tag( 'tr' ) . html_tag( 'td', '', 'center', $color[0] ) . + addForm('folders_create.php', 'POST', 'cf'). + addInput('folder_name', '', 25). + "
\n". _("as a subfolder of"). '
'. + "
\n". - _("as a subfolder of"). - '
'. - "\n"; +echo "
\n"; if ($show_contain_subfolders_option) { - echo '
 ' + echo '
'. + addCheckBox('contain_subs', FALSE, '1') .'  ' . _("Let this folder contain subfolders") - . '
'; + . '
'; } -echo "\n"; -echo "\n"; +echo "\n"; +echo "\n"; echo html_tag( 'tr', html_tag( 'td', ' ', 'left', $color[4] ) ) ."\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; + } } @@ -176,32 +195,23 @@ echo html_tag( 'tr', html_tag( 'td', '', 'center', $color[0] ); if ($count_special_folders < count($boxes)) { - echo "
\n" - . "\n". - "\n". + '\n". - "
\n"; + "\" />\n". + "\n"; } else { - echo _("No folders found") . '

'; + echo _("No folders found") . '

'; } $boxes_sub = $boxes; @@ -217,31 +227,21 @@ echo html_tag( 'tr', html_tag( 'td', '', 'center', $color[0] ); if ($count_special_folders < count($boxes)) { - echo "
\n" - . "\n" - . '\n" + . '\n" + . "\" />\n" . "
\n"; } else { - echo _("No folders found") . "

"; + echo _("No folders found") . "

"; } echo html_tag( 'tr', @@ -258,25 +258,25 @@ echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="4" cellspaci html_tag( 'td', '', 'center', $color[0], 'width="50%"' ); if ($count_special_folders < count($boxes)) { - echo "
\n" - . "\n"; for ($i = 0; $i < count($boxes); $i++) { $use_folder = true; if ((strtolower($boxes[$i]["unformatted"]) != "inbox") && ($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(' ', ' ', - imap_utf7_decode_local($boxes[$i]["unformatted-disp"])); - echo " \n"; } } - echo "

\n" - . '

\n" + . '\n" - . "
\n"; + . "\" />\n" + . "\n"; } else { echo _("No folders were found to unsubscribe from!") . ''; } @@ -300,44 +300,40 @@ 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++; } } if ($box && $box2) { - echo "
\n" - . ''; for ($q = 0; $q < count($box); $q++) { - echo " \n"; } - echo '

' - . '\n" - . "

\n"; + echo '

' + . '\n" + . "
\n"; } else { echo _("No folders were found to subscribe to!") . ''; } } else { /* don't perform the list action -- this is much faster */ - echo "
\n" - . _("Subscribe to:") . '
' - . '' - . '\n" - . "
\n"; + echo addForm('folders_subscribe.php?method=sub') + . _("Subscribe to:") . '
' + . '' + . '\n" + . "
\n"; } do_hook('folders_bottom'); ?> - - - -