X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fright_main.php;h=e3d5a5055fea80ded01322b78ea92532f59bf6f9;hp=f10ed956de67b09b25700d9ab5073d336b4e0735;hb=26e90c74aeb5d8728f4fa08bea938064730f41bf;hpb=dfec863ee306edcf23b897453bc19262002343d0
diff --git a/src/right_main.php b/src/right_main.php
index f10ed956..e3d5a505 100644
--- a/src/right_main.php
+++ b/src/right_main.php
@@ -1,135 +1,277 @@
\n";
+if (isset($newsort) ) {
+ if ( $newsort != $sort )
+ setPref($data_dir, $username, 'sort', $newsort);
+
+ $sort = $newsort;
+ sqsession_register($sort, 'sort');
+}
+
+/* If the page has been loaded without a specific mailbox, */
+/* send them to the inbox */
+if (!isset($mailbox)) {
+ $mailbox = 'INBOX';
+ $startMessage = 1;
+}
- do_hook('right_main_after_header');
- if (isset($note)) {
- echo "
$note
\n";
+if (!isset($startMessage) || ($startMessage == '')) {
+ $startMessage = 1;
+}
+
+/* compensate for the UW vulnerability. */
+if ($imap_server_type == 'uw' && (strstr($mailbox, '../') ||
+ substr($mailbox, 0, 1) == '/')) {
+ $mailbox = 'INBOX';
+}
+
+/* decide if we are thread sorting or not */
+if ($allow_thread_sort == TRUE) {
+ if (isset($set_thread)) {
+ if ($set_thread == 1) {
+ setPref($data_dir, $username, "thread_$mailbox", 1);
+ $thread_sort_messages = '1';
+ }
+ elseif ($set_thread == 2) {
+ setPref($data_dir, $username, "thread_$mailbox", 0);
+ $thread_sort_messages = '0';
+ }
+ }
+ else {
+ $thread_sort_messages = getPref($data_dir, $username, "thread_$mailbox");
}
+}
+else {
+ $thread_sort_messages = 0;
+}
+do_hook ('generic_header');
+
+$aMbxResponse = sqimap_mailbox_select($imapConnection, $mailbox);
+$aMbxResponse['SORT_ARRAY'] = false;
+
+sqgetGlobalVar('aLastSelectedMailbox',$aLastSelectedMailbox,SQ_SESSION);
+
+// deal with imap servers that do not return the required UIDNEXT or
+// UIDVALIDITY response
+// from a SELECT call (since rfc 3501 it's required)
+if (!isset($aMbxResponse['UIDNEXT']) || !isset($aMbxResponse['UIDVALIDITY'])) {
+ $aStatus = sqimap_status_messages($imapConnection,$mailbox,
+ array('UIDNEXT','UIDVALIDITY'));
+ $aMbxResponse['UIDNEXT'] = $aStatus['UIDNEXT'];
+ $aMbxResponse['UIDVALIDTY'] = $aStatus['UIDVALIDITY'];
+}
+
+if ($aLastSelectedMailbox && !isset($newsort)) {
+ // check if we deal with the same mailbox
+ if ($aLastSelectedMailbox['NAME'] == $mailbox) {
+ if ($aLastSelectedMailbox['EXISTS'] == $aMbxResponse['EXISTS'] &&
+ $aLastSelectedMailbox['UIDVALIDITY'] == $aMbxResponse['UIDVALIDITY'] &&
+ $aLastSelectedMailbox['UIDNEXT'] == $aMbxResponse['UIDNEXT']) {
+ // sort is still valid
+ sqgetGlobalVar('server_sort_array',$server_sort_array,SQ_SESSION);
+ if ($server_sort_array && is_array($server_sort_array)) {
+ $aMbxResponse['SORT_ARRAY'] = $server_sort_array;
+ }
+ }
+ }
+}
+
+$aLastSelectedMailbox['NAME'] = $mailbox;
+$aLastSelectedMailbox['EXISTS'] = $aMbxResponse['EXISTS'];
+$aLastSelectedMailbox['UIDVALIDITY'] = $aMbxResponse['UIDVALIDITY'];
+$aLastSelectedMailbox['UIDNEXT'] = $aMbxResponse['UIDNEXT'];
+
+if ($composenew) {
+ $comp_uri = SM_PATH . 'src/compose.php?mailbox='. urlencode($mailbox).
+ "&session=$session";
+ displayPageHeader($color, $mailbox, "comp_in_new('$comp_uri');", false);
+} else {
+ displayPageHeader($color, $mailbox);
+}
+do_hook('right_main_after_header');
+
+/* display a message to the user that their mail has been sent */
+if (isset($mail_sent) && $mail_sent == 'yes') {
+ $note = _("Your Message has been sent.");
+}
+if (isset($note)) {
+ echo html_tag( 'div', '' . $note .'', 'center' ) . "
\n";
+}
+
+if ( sqgetGlobalVar('just_logged_in', $just_logged_in, SQ_SESSION) ) {
if ($just_logged_in == true) {
$just_logged_in = false;
+ sqsession_register($just_logged_in, 'just_logged_in');
if (strlen(trim($motd)) > 0) {
- echo "
" .
- '' .
- "" .
- "$motd";
- do_hook('motd');
- echo ' | ' .
- ' ' .
- ' |
';
+ echo html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td',
+ html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td', $motd, 'center' )
+ ) ,
+ '', $color[4], 'width="100%" cellpadding="5" cellspacing="1" border="0"' )
+ )
+ ) ,
+ 'center', $color[9], 'width="70%" cellpadding="0" cellspacing="3" border="0"' );
}
}
+}
- if (isset($newsort)) {
- $sort = $newsort;
- session_register('sort');
- }
- /*********************************************************************
- * Check to see if we can use cache or not. Currently the only time *
- * when you will not use it is when a link on the left hand frame is *
- * used. Also check to make sure we actually have the array in the *
- * registered session data. :) *
- *********************************************************************/
- if (! isset($use_mailbox_cache)) {
- $use_mailbox_cache = 0;
+/*********************************************************************
+ * Check to see if we can use cache or not. Currently the only time *
+ * when you will not use it is when a link on the left hand frame is *
+ * used. Also check to make sure we actually have the array in the *
+ * registered session data. :) *
+ *********************************************************************/
+if (! isset($use_mailbox_cache)) {
+ $use_mailbox_cache = 0;
+}
+
+if ($use_mailbox_cache && sqsession_is_registered('msgs')) {
+ showMessagesForMailbox($imapConnection, $mailbox, $numMessages,
+ $startMessage, $sort, $color, $show_num,
+ $use_mailbox_cache, '',$aMbxResponse);
+} else {
+ if (sqsession_is_registered('msgs')) {
+ unset($msgs);
}
- if ($use_mailbox_cache && session_is_registered('msgs')) {
- showMessagesForMailbox($imapConnection, $mailbox, $numMessages, $startMessage, $sort, $color, $show_num, $use_mailbox_cache);
- } else {
- if (session_is_registered('msgs')) {
- unset($msgs);
- }
+ if (sqsession_is_registered('msort')) {
+ unset($msort);
+ }
- if (session_is_registered('msort')) {
- unset($msort);
- }
+ if (sqsession_is_registered('numMessages')) {
+ unset($numMessages);
+ }
- if (session_is_registered('numMessages')) {
- unset($numMessages);
- }
+ $numMessages = $aMbxResponse['EXISTS'];
- $numMessages = sqimap_get_num_messages ($imapConnection, $mailbox);
+ showMessagesForMailbox($imapConnection, $mailbox, $numMessages,
+ $startMessage, $sort, $color, $show_num,
+ $use_mailbox_cache,'',$aMbxResponse);
- showMessagesForMailbox($imapConnection, $mailbox, $numMessages,
- $startMessage, $sort, $color, $show_num,
- $use_mailbox_cache);
+ if (sqsession_is_registered('msgs') && isset($msgs)) {
+ sqsession_register($msgs, 'msgs');
+ }
- if (session_is_registered('msgs') && isset($msgs)) {
- session_register('msgs');
- }
+ if (sqsession_is_registered('msort') && isset($msort)) {
+ sqsession_register($msort, 'msort');
+ }
- if (session_is_registered('msort') && isset($msort)) {
- session_register('msort');
- }
+ sqsession_register($numMessages, 'numMessages');
+}
+do_hook('right_main_bottom');
+sqimap_logout ($imapConnection);
+echo '