Make message_details actually show the correct entity when viewing details of attache...
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 28 Sep 2007 17:27:29 +0000 (17:27 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 28 Sep 2007 17:27:29 +0000 (17:27 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@12701 7612ce4b-ef26-0410-bec9-ea0150e637f0

ChangeLog
plugins/message_details/message_details_bottom.php
plugins/message_details/message_details_main.php
plugins/message_details/message_details_top.php
plugins/message_details/setup.php

index 1e075d1..d7bc837 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -218,6 +218,8 @@ Version 1.5.2 - SVN
   - Removed "Include CCs when Forwarding Messages", which had no functionality
     whatsoever.
   - Added "preselected" query argument to mailbox list.
+  - Make the Message Details plugin actually show the correct entity when
+    viewing details of attached messages.
 
 Version 1.5.1 (branched on 2006-02-12)
 --------------------------------------
index e4bb397..b9cd0f6 100644 (file)
@@ -13,6 +13,7 @@
  * @package plugins
  * @subpackage message_details
  */
+//FIXME: this file uses HTML extensively and eventually needs to be "templatized" (don't echo HTML directly)
 
 /**
  * Include the SquirrelMail initialization file.
@@ -33,12 +34,15 @@ $msgd_8bit_in_hex=false;
 
 if (!empty($md_action)) {
     sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+    if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
+        $passed_ent_id = 0;
     sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
     /* 
-     * add third function argument, if you want to see 
+     * change $unformatted to TRUE if you want to see 
      * message source without formating
      */
-    echo get_message_details($mailbox, $passed_id);
+    $unformatted = FALSE;
+    echo get_message_details($mailbox, $passed_id, $passed_ent_id, $unformatted);
 }
 
 
@@ -100,20 +104,24 @@ function CalcEntity($entString, $direction) {
  * Returns actual message details
  * @param string $mailbox
  * @param string $passed_id
+ * @param string $passed_ent_id
  * @param boolean $stripHTML If TRUE, only plain text is returned,
  *                           default is FALSE, wherein output contains
  *                           pretty-HTMLification of message body
  * @return string The formatted message details
  * @access public
  */
-function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
+function get_message_details($mailbox, $passed_id, $passed_ent_id=0, $stripHTML=FALSE) {
     global $imapServerAddress, $imapPort, $color,$msgd_8bit_in_hex, $username;
 
     $returnValue = '';
 
     $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0);
     $read = sqimap_mailbox_select($imapConnection, $mailbox);
-    $body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, TRUE);
+    if (!empty($passed_ent_id))
+        $body = sqimap_run_command($imapConnection, "FETCH $passed_id BODY[$passed_ent_id]",true, $response, $readmessage, TRUE);
+    else
+        $body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, TRUE);
     $message_body = '';
     $header = false;
     $mimepart = false;
index cfe0139..72f309e 100644 (file)
@@ -23,12 +23,17 @@ displayHtmlHeader( _("Message Details"), '', FALSE );
 
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
 sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
+    $passed_ent_id = 0;
 
+//FIXME: Don't echo HTML directly - need to "templatize" this
 echo "<frameset rows=\"60, *\" >\n";
-echo '<frame src="message_details_top.php?mailbox=' . urlencode($mailbox) .'&amp;passed_id=' . "$passed_id".
-    '" name="top_frame" scrolling="no" noresize="noresize" frameborder="0" />';
-echo '<frame src="message_details_bottom.php?mailbox=' . urlencode($mailbox) .
-    '&amp;get_message_details=yes&amp;passed_id=' . "$passed_id" .
-    '" name="bottom_frame" frameborder="0" />';
+echo '<frame src="message_details_top.php?mailbox=' . urlencode($mailbox) .'&amp;passed_id=' . $passed_id 
+    . '&amp;passed_ent_id=' . $passed_ent_id
+    . '" name="top_frame" scrolling="no" noresize="noresize" frameborder="0" />';
+echo '<frame src="message_details_bottom.php?mailbox=' . urlencode($mailbox) 
+    . '&amp;get_message_details=yes&amp;passed_id=' . $passed_id 
+    . '&amp;passed_ent_id=' . $passed_ent_id
+    . '" name="bottom_frame" frameborder="0" />';
 echo  '</frameset>'."\n"."</html>\n";
-?>
\ No newline at end of file
+?>
index aa08a47..3263d25 100644 (file)
@@ -31,6 +31,8 @@ displayHtmlHeader( _("Message Details"),
              "</script>\n", FALSE );
 
 sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
+    $passed_ent_id = 0;
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
 
 echo "<body text=\"$color[8]\" bgcolor=\"$color[3]\" link=\"$color[7]\" vlink=\"$color[7]\" alink=\"$color[7]\">\n" .
@@ -38,7 +40,7 @@ echo "<body text=\"$color[8]\" bgcolor=\"$color[3]\" link=\"$color[7]\" vlink=\"
      addForm(SM_PATH . 'src/download.php', 'GET').
      addHidden('mailbox', $mailbox).
      addHidden('passed_id', $passed_id).
-     addHidden('ent_id', '0').
+     addHidden('ent_id', $passed_ent_id).
      addHidden('absolute_dl', 'true').
      (checkForJavascript() ?
      '<input type="button" value="' . _("Print") . '" onclick="printPopup()" />&nbsp;&nbsp;'.
index 0b2c134..d5a8a13 100644 (file)
@@ -30,13 +30,13 @@ function squirrelmail_plugin_init_message_details()
  * @access private
  */
 function show_message_details(&$links) {
-    global $passed_id, $mailbox, $ent_num;
+    global $passed_id, $mailbox, $passed_ent_id;
     
     if (strlen(trim($mailbox)) < 1) {
         $mailbox = 'INBOX';
     }
 
-    $params = '?passed_ent_id=' . $ent_num .
+    $params = '?passed_ent_id=' . $passed_ent_id .
               '&mailbox=' . urlencode($mailbox) .
               '&passed_id=' . $passed_id;