We're living in 2004 now... perl is your friend for these kinds of things :)
[squirrelmail.git] / src / view_text.php
index 803c4ac3766160e19d9f28f1c1e9662f7cd0d663..4bc60d2f7de0179e4f55f47c5c29c47150d5081b 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * view_text.php -- Displays the main frameset
  *
- * Copyright (c) 1999-2003 The SquirrelMail development team
+ * Copyright (c) 1999-2004 The SquirrelMail development team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Who knows what this file does. However PUT IT HERE DID NOT PUT
  * be very ashamed.
  *
  * $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/global.php');
 require_once(SM_PATH . 'functions/imap.php');
 require_once(SM_PATH . 'functions/mime.php');
 require_once(SM_PATH . 'functions/html.php');
-   
-$mailbox = urldecode($_GET['mailbox']);
-if (!isset($_GET['passed_ent_id'])) {
-    $passed_ent_id = '';
-} else {
-    $passed_ent_id = $_GET['passed_ent_id'];
-}
-$passed_id = $_GET['passed_id'];
-if (isset($_GET['ent_id'])) {
-       $ent_id = $_GET['ent_id'];
-} else {
-       $ent_id = '';
-}
 
-$username = $_SESSION['username'];
-$key = $_COOKIE['key'];
-$delimiter = $_SESSION['delimiter'];
-$onetimepad = $_SESSION['onetimepad'];
-$QUERY_STRING = $_SERVER['QUERY_STRING'];
-sqgetGlobalVar('messages', $messages);
+sqgetGlobalVar('key',        $key,          SQ_COOKIE);
+sqgetGlobalVar('username',   $username,     SQ_SESSION);
+sqgetGlobalVar('onetimepad', $onetimepad,   SQ_SESSION);
+sqgetGlobalVar('messages',   $messages,     SQ_SESSION);
+sqgetGlobalVar('mailbox',    $mailbox,      SQ_GET);
+sqgetGlobalVar('ent_id',     $ent_id,       SQ_GET);
+sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET);
+sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
+if (sqgetGlobalVar('passed_id', $temp, SQ_GET)) {
+    $passed_id = (int) $temp;
+}
 
 $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
-$mbx_response  sqimap_mailbox_select($imapConnection, $mailbox);
+$mbx_response   = sqimap_mailbox_select($imapConnection, $mailbox);
 
-$message = &$messages[$mbx_response['UIDVALIDITY']]["$passed_id"];
+$message = &$messages[$mbx_response['UIDVALIDITY']][$passed_id];
+if (!is_object($message)) {
+    $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
+}
 $message_ent = &$message->getEntity($ent_id);
 if ($passed_ent_id) {
     $message = &$message->getEntity($passed_ent_id);
 }
-   
-$header = $message_ent->header;
-$charset = $header->getParameter('charset');
-$type0 = $header->type0;
-$type1 = $header->type1;
+$header   = $message_ent->header;
+$type0    = $header->type0;
+$type1    = $header->type1;
+$charset  = $header->getParameter('charset');
 $encoding = strtolower($header->encoding);
 
-$msg_url = 'read_body.php?' . $QUERY_STRING;
-$msg_url = set_url_var($msg_url, 'ent_id', 0);
+$msg_url   = 'read_body.php?' . $QUERY_STRING;
+$msg_url   = set_url_var($msg_url, 'ent_id', 0);
+$dwnld_url = '../src/download.php?'. $QUERY_STRING . '&absolute_dl=true';
 
 $body = mime_fetch_body($imapConnection, $passed_id, $ent_id);
 $body = decodeBody($body, $encoding);
 
-displayPageHeader($color, 'None');
-
-echo "<BR><TABLE WIDTH=\"100%\" BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER><TR><TD BGCOLOR=\"$color[0]\">".
-     "<B><CENTER>".
-     _("Viewing a text attachment") . " - ";
-echo '<a href="'.$msg_url.'">'. _("View message") . '</a>';
+if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
+    function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
+    if (mb_detect_encoding($body) != 'ASCII') {
+        $body = $languages[$squirrelmail_language]['XTRA_CODE']('decode', $body);
+    }
+}
 
-$dwnld_url = '../src/download.php?'. $QUERY_STRING.'&amp;absolute_dl=true';
-echo '</b></td><tr><tr><td><CENTER><A HREF="'.$dwnld_url. '">'.
-     _("Download this as a file").
-     "</A></CENTER><BR>".
-     "</CENTER></B>".
-     "</TD></TR></TABLE>".
-     "<TABLE WIDTH=\"98%\" BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER><TR><TD BGCOLOR=\"$color[0]\">".
-     "<TR><TD BGCOLOR=\"$color[4]\"><TT>";
 if ($type1 == 'html' || (isset($override_type1) &&  $override_type1 == 'html')) {
     $body = MagicHTML( $body, $passed_id, $message, $mailbox);
 } else {
     translateText($body, $wrap_at, $charset);
 }
-echo $body . "</TT></TD></TR></TABLE>";
 
+displayPageHeader($color, 'None');
+
+echo '<BR><TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER><TR><TD BGCOLOR="' . $color[0] . '">' .
+     '<B><CENTER>' .
+     _("Viewing a text attachment") . ' - ' .
+     '<a href="'.$msg_url.'">'. _("View message") . '</a>' .
+     '</b></td><tr><tr><td><CENTER><A HREF="' . $dwnld_url . '">' .
+     _("Download this as a file") .
+     '</A></CENTER><BR>' .
+     '</CENTER></B>' .
+     '</TD></TR></TABLE>' .
+     '<TABLE WIDTH="98%" BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER><TR><TD BGCOLOR="' . $color[0] . '">' .
+     '<TR><TD BGCOLOR="' . $color[4] . '"><TT>' .
+     $body . '</TT></TD></TR></TABLE>' .
+     '</body></html>';
 ?>