فهرست منبع

making script work correctly when draft is resumed. Tagging some parts that
might need fixes.

tokul 20 سال پیش
والد
کامیت
0a0cfac523
1فایلهای تغییر یافته به همراه52 افزوده شده و 15 حذف شده
  1. 52 15
      src/delete_message.php

+ 52 - 15
src/delete_message.php

@@ -20,7 +20,7 @@ define('SM_PATH','../');
 
 
 /* SquirrelMail required files. */
 /* SquirrelMail required files. */
 require_once(SM_PATH . 'include/validate.php');
 require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/display_messages.php');
+include_once(SM_PATH . 'functions/display_messages.php');
 require_once(SM_PATH . 'functions/imap.php');
 require_once(SM_PATH . 'functions/imap.php');
 
 
 /* get globals */
 /* get globals */
@@ -33,20 +33,39 @@ sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
 
 
 sqgetGlobalVar('bypass_trash', $bypass_trash, SQ_FORM);
 sqgetGlobalVar('bypass_trash', $bypass_trash, SQ_FORM);
 
 
+global $data_dir;
 /* end globals */
 /* end globals */
 
 
+/* get $compose_new_win */
+$compose_new_win=getPref($data_dir,$username,'compose_new_win',0);
+
+/**
+ * Script is used when draft is saved again or sent.
+ * browser should be redirected to compose.php (compose_new_win=1)
+ * or right_main.php
+ * Problem: drafts folder listing is not refreshed when 
+ * compose_new_win=1.
+ */
 if (sqGetGlobalVar('saved_draft', $tmp, SQ_GET)) {
 if (sqGetGlobalVar('saved_draft', $tmp, SQ_GET)) {
     $saved_draft = urlencode($tmp);
     $saved_draft = urlencode($tmp);
 }
 }
 if (sqGetGlobalVar('mail_sent', $tmp, SQ_GET)) {
 if (sqGetGlobalVar('mail_sent', $tmp, SQ_GET)) {
     $mail_sent = urlencode($tmp);
     $mail_sent = urlencode($tmp);
 }
 }
+/**
+ * Script is used in search page.
+ * browser should be redirected to search.php
+ * Is it really used in search page?
+ */
 if (sqGetGlobalVar('where', $tmp, SQ_FORM)) {
 if (sqGetGlobalVar('where', $tmp, SQ_FORM)) {
     $where = urlencode($tmp);
     $where = urlencode($tmp);
 }
 }
 if (sqGetGlobalVar('what', $tmp, SQ_FORM)) {
 if (sqGetGlobalVar('what', $tmp, SQ_FORM)) {
     $what = urlencode($tmp);
     $what = urlencode($tmp);
 }
 }
+/**
+ * FIXME: which part of code uses it?
+ */
 if (sqGetGlobalVar('sort', $tmp, SQ_FORM)) {
 if (sqGetGlobalVar('sort', $tmp, SQ_FORM)) {
     $sort = (int) $tmp;
     $sort = (int) $tmp;
 }
 }
@@ -56,30 +75,48 @@ if (sqGetGlobalVar('startMessage', $tmp, SQ_FORM)) {
 
 
 $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
 $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
 
 
+// FIXME: unchecked use of variables.
 sqimap_mailbox_select($imapConnection, $mailbox);
 sqimap_mailbox_select($imapConnection, $mailbox);
 
 
+// FIXME: unchecked use of variables.
 sqimap_messages_delete($imapConnection, $message, $message, $mailbox,$bypass_trash);
 sqimap_messages_delete($imapConnection, $message, $message, $mailbox,$bypass_trash);
 if ($auto_expunge) {
 if ($auto_expunge) {
     sqimap_mailbox_expunge($imapConnection, $mailbox, true);
     sqimap_mailbox_expunge($imapConnection, $mailbox, true);
 }
 }
-if (!isset($saved_draft)) {
-    $saved_draft = '';
-}
-
-if (!isset($mail_sent)) {
-    $mail_sent = '';
-}
 
 
 $location = get_location();
 $location = get_location();
 
 
-if (isset($where) && isset($what)) {
+/**
+ * FIXME: rg=on problems with $saved_drafts, $sent_mail, $where and $what
+ * FIXME: current version of squirrelmail contains only two 
+ * delete_message.php calls. with saved_draft=yes (compose.php 
+ * around line 360) and with mail_sent=yes (compose.php around line 434)
+ */
+if (isset($saved_draft)) {
+    // process resumed and again saved draft
+    if ($compose_new_win == '1') {
+        header("Location: $location/compose.php?saved_draft=yes");
+    } else {
+        $draft_message = _("Draft Saved");
+        header("Location: $location/right_main.php?mailbox=" . urlencode($draft_folder) .
+               "&startMessage=1&note=".urlencode($draft_message));
+    }
+} elseif (isset($mail_sent)) {
+    // process resumed and then sent draft
+    if ($compose_new_win == '1') {
+        header("Location: $location/compose.php?mail_sent=yes");
+    } else {
+        $draft_message = _("Your Message has been sent.");
+        header("Location: $location/right_main.php?mailbox=" . urlencode($draft_folder) .
+               "&startMessage=1&note=".urlencode($draft_message));
+    }
+} elseif (isset($where) && isset($what)) {
+    // FIXME: I suspect that part of code is obsolete
     header("Location: $location/search.php?where=" . $where .
     header("Location: $location/search.php?where=" . $where .
            '&what=' . $what . '&mailbox=' . urlencode($mailbox));
            '&what=' . $what . '&mailbox=' . urlencode($mailbox));
+} else {
+    header("Location: $location/right_main.php?startMessage=$startMessage&mailbox=" .
+       urlencode($mailbox));
 }
 }
-
-header("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=" .
-    urlencode($mailbox));
-
 sqimap_logout($imapConnection);
 sqimap_logout($imapConnection);
-
-?>
+?>