X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=05462549a88987a26c702247754b207f4e615640;hb=6a109962730487f0fcd33d55280f7da00c6f02a8;hp=de61e2d8a2a53dc67036b1b7fc2c233a1a5fdf1b;hpb=2e434774cf8c58fcf79c636a9991a6f70e5eeb60;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index de61e2d8..05462549 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -1,33 +1,169 @@ -"; + echo "\n"; + echo "
" . _("Viewing full header") . " - "; + if ($where && $what) { + // Got here from a search + echo ""; + } else { + echo ""; + } + echo ""._("View message") . "
\n"; + echo "\n"; + echo "
"; + + echo ""; + for ($i=1; $i < count($read)-1; $i++) { + $line = htmlspecialchars($read[$i]); + if (eregi("^[ |\t]", $line)) { + $second = $line; + $first = ""; + } else if (eregi("^([^:|^\s]+):(.+)", $line, $regs)) { + $first = $regs[1]; + $second = $regs[2]; + } else { + $second = trim($line); + $first = ""; + } + echo ""; + } + echo "
"; + if ($first) echo "$first:"; + else echo " "; + echo "$second
"; + echo "
\n"; + echo ""; + sqimap_mailbox_close($imapConnection); + sqimap_logout($imapConnection); + exit; + } + + // given an IMAP message id number, this will look it up in the cached and sorted msgs array and + // return the index. used for finding the next and previous messages + + // returns the index of the next valid message from the array + function findNextMessage() { + global $msort, $currentArrayIndex, $msgs, $sort; + + if ($sort == 6) { + if ($currentArrayIndex != 1) { + return $currentArrayIndex - 1; + } + } else { + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]["ID"]) { + next($msort); + $key = key($msort); + if (isset($key)) + return $msgs[$key]["ID"]; + } + } + } + return -1; + } + + // returns the index of the previous message from the array + function findPreviousMessage() { + global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection, $mailbox; + if ($sort == 6) { + $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); + if ($currentArrayIndex != $numMessages) { + return $currentArrayIndex + 1; + } + } else { + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]["ID"]) { + prev($msort); + $key = key($msort); + if (isset($key)) + return $msgs[$key]["ID"]; + } + } + } + return -1; + } + + if (isset($msgs)) { + $currentArrayIndex = $passed_id; + /* + for ($i=0; $i < count($msgs); $i++) { + if ($msgs[$i]["ID"] == $passed_id) { + $currentArrayIndex = $i; + break; + } + } + */ + } else { + $currentArrayIndex = -1; + } + + for ($i = 0; $i < count($msgs); $i++) { + if ($msgs[$i]["ID"] == $passed_id) + $msgs[$i]["FLAG_SEEN"] = true; + } // $message contains all information about the message // including header and body $message = sqimap_get_message($imapConnection, $passed_id, $mailbox); - echo ""; - echo "\n"; - displayPageHeader($color, $mailbox); - /** translate the subject and mailbox into url-able text **/ - $url_subj = urlencode(trim(stripslashes($message["HEADER"]["SUBJECT"]))); + $url_subj = urlencode(trim(sqStripSlashes($message->header->subject))); $urlMailbox = urlencode($mailbox); - $url_replyto = urlencode($message["HEADER"]["REPLYTO"]); + $url_replyto = urlencode($message->header->replyto); - $url_replytoall = urlencode($message["HEADER"]["REPLYTO"]); - $url_replytoallcc = urlencode(getLineOfAddrs($message["HEADER"]["TO"]) . ", " . getLineOfAddrs($message["HEADER"]["CC"])); + $url_replytoall = urlencode($message->header->replyto); + $url_replytoallcc = getLineOfAddrs($message->header->to); + $url_replytoallcc_cc = getLineOfAddrs($message->header->cc); + if ($url_replytoallcc) { + if ($url_replytoallcc_cc) { + $url_replytoallcc .= ", " . $url_replytoallcc_cc; + } + } else { + if ($url_replytoallcc_cc) { + $url_replytoallcc = $url_replytoallcc_cc; + } else { + $url_replytoallcc = ""; + } + } + $url_replytoallcc = urlencode($url_replytoallcc); - $dateString = getLongDateString($message["HEADER"]["DATE"]); + $dateString = getLongDateString($message->header->date); + $ent_num = findDisplayEntity($message); /** TEXT STRINGS DEFINITIONS **/ $echo_more = _("more"); @@ -36,9 +172,10 @@ /** FORMAT THE TO STRING **/ $i = 0; $to_string = ""; - $to_ary = $message["HEADER"]["TO"]; + $to_ary = $message->header->to; while ($i < count($to_ary)) { - $to_ary[$i] = htmlspecialchars($to_ary[$i]); + $to_ary[$i] = htmlspecialchars(decodeHeader($to_ary[$i])); + if ($to_string) $to_string = "$to_string
$to_ary[$i]"; else @@ -48,11 +185,21 @@ if (count($to_ary) > 1) { if ($show_more == false) { if ($i == 1) { - $to_string = "$to_string ($echo_more)"; + if ($where && $what) { + // from a search + $to_string = "$to_string ($echo_more)"; + } else { + $to_string = "$to_string ($echo_more)"; + } $i = count($to_ary); } } else if ($i == 1) { - $to_string = "$to_string ($echo_less)"; + if ($where && $what) { + // from a search + $to_string = "$to_string ($echo_less)"; + } else { + $to_string = "$to_string ($echo_less)"; + } } } } @@ -60,8 +207,8 @@ /** FORMAT THE CC STRING **/ $i = 0; $cc_string = ""; - $cc_ary = $message["HEADER"]["CC"]; - while ($i < count($cc_ary)) { + $cc_ary = $message->header->cc; + while ($i < count(decodeHeader($cc_ary))) { $cc_ary[$i] = htmlspecialchars($cc_ary[$i]); if ($cc_string) $cc_string = "$cc_string
$cc_ary[$i]"; @@ -72,45 +219,85 @@ if (count($cc_ary) > 1) { if ($show_more_cc == false) { if ($i == 1) { - $cc_string = "$cc_string ($echo_more)"; + if ($where && $what) { + // from a search + $cc_string = "$cc_string ($echo_more)"; + } else { + $cc_string = "$cc_string ($echo_more)"; + } $i = count($cc_ary); } } else if ($i == 1) { - $cc_string = "$cc_string ($echo_less)"; + if ($where && $what) { + // from a search + $cc_string = "$cc_string ($echo_less)"; + } else { + $cc_string = "$cc_string ($echo_less)"; + } } } } /** make sure everything will display in HTML format **/ - $from_name = decodeHeader($message["HEADER"]["FROM"]); - $subject = decodeHeader(stripslashes($message["HEADER"]["SUBJECT"])); + $from_name = decodeHeader(htmlspecialchars($message->header->from)); + $subject = decodeHeader(htmlspecialchars($message->header->subject)); + do_hook("read_body_top"); echo "
"; - echo "\n"; - echo "
"; + + echo "\n"; + echo " "; + echo "
"; echo " "; echo " "; - echo " "; echo " "; echo "
"; - echo " "; - echo " "; + echo " "; + echo " "; + if ($where && $what) { + echo " "; + } else { + echo " "; + } echo _("Message List"); echo " | "; - echo " "; + if ($where && $what) { + echo " "; + } else { + echo " "; + } echo _("Delete"); echo "  "; - echo " "; - echo " "; - echo " "; - echo " "; + echo " "; + echo " "; + echo " \n"; + if ($where && $what) { + } else { + if ($currentArrayIndex == -1) { + echo "Previous | Next"; + } else { + $prev = findPreviousMessage(); + $next = findNextMessage(); + if ($prev != -1) + echo "" . _("Previous") . " | "; + else + echo _("Previous") . " | "; + if ($next != -1) + echo "" . _("Next") . ""; + else + echo _("Next"); + } + } + echo " \n"; + echo " "; + echo " "; + echo " "; echo _("Forward"); echo " | "; - echo " "; + echo " "; echo _("Reply"); echo " | "; - echo " "; + echo " "; echo _("Reply All"); echo "  "; - echo " "; + echo " "; echo "
"; @@ -119,65 +306,69 @@ echo " \n"; echo " \n"; /** subject **/ - echo " \n"; + if ($where && $what) { + // Got here from a search + echo " "; + } else { + echo " "; + } echo " \n"; /** from **/ echo " \n"; - echo " \n"; echo " \n"; /** date **/ echo " \n"; - echo " \n"; echo " \n"; /** to **/ echo " \n"; - echo " \n"; echo " \n"; /** cc **/ - if ($message["HEADER"]["CC"][0]) { + if ($message->header->cc) { echo " \n"; - echo " \n"; echo " \n"; } echo "
\n"; - echo " "; + echo " \n"; echo _("Subject:"); - echo "\n"; - echo " \n"; - echo " $subject\n"; + echo " \n"; + echo " $subject \n"; echo " " . _("View full header") . "  " . _("View full header") . "  
\n"; - echo " "; + echo " \n"; echo _("From:"); - echo "\n"; - echo " \n"; - echo " $from_name\n"; + echo " \n"; + echo " $from_name \n"; echo "
\n"; - echo " "; + echo " \n"; echo _("Date:"); - echo "\n"; - echo " \n"; - echo " $dateString\n"; + echo " \n"; + echo " $dateString \n"; echo "
\n"; - echo " "; + echo " \n"; echo _("To:"); - echo "\n"; - echo " \n"; - echo " $to_string\n"; + echo " \n"; + echo " $to_string \n"; echo "
\n"; - echo " Cc:\n"; - echo " \n"; - echo " $cc_string\n"; + echo " \n"; + echo " Cc:\n"; + echo " \n"; + echo " $cc_string \n"; echo "
"; echo "
"; + echo "\n"; echo " \n"; + echo $body; + + echo "
\n"; - $body = formatBody($message, $color, $wrap_at); echo "
"; + + $body = formatBody($imapConnection, $message, $color, $wrap_at); - echo "$body"; - - echo "
\n"; echo " "; echo "
 
\n"; + do_hook("read_body_bottom"); + do_hook("html_bottom"); + sqimap_logout($imapConnection); ?>