X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fread_body.php;h=f9c22d88823740390a645728e6ee4f4e108e4c22;hp=ba9be44d45ff93026a69e16e7e22811e13af26c7;hb=5eb5b57e4c250a5beb6976c9516f1b537b2e0b3c;hpb=a5ee5ac2abfa64906394d54b9d94719517274b90 diff --git a/src/read_body.php b/src/read_body.php index ba9be44d..f9c22d88 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -10,654 +10,1066 @@ * the resulting emails in the right frame. * * $Id$ - / - -/*****************************************************************/ -/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/ -/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/ -/*** + Base level indent should begin at left margin, as ***/ -/*** the require_once below looks. ***/ -/*** + All identation should consist of four space blocks ***/ -/*** + Tab characters are evil. ***/ -/*** + all comments should use "slash-star ... star-slash" ***/ -/*** style -- no pound characters, no slash-slash style ***/ -/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/ -/*** ALWAYS USE { AND } CHARACTERS!!! ***/ -/*** + Please use ' instead of ", when possible. Note " ***/ -/*** should always be used in _( ) function calls. ***/ -/*** Thank you for your help making the SM code more readable. ***/ -/*****************************************************************/ + */ require_once('../src/validate.php'); require_once('../functions/imap.php'); require_once('../functions/mime.php'); require_once('../functions/date.php'); require_once('../functions/url_parser.php'); - - /** - * 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; - $result = -1; - - if ($sort == 6) { - if ($currentArrayIndex != 1) { - $result = $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)) - $result = $msgs[$key]['ID']; - break; +require_once('../functions/smtp.php'); +require_once('../functions/html.php'); +require_once('../src/view_header.php'); + +/** + * 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. + * + * @return the index of the next valid message from the array + */ +function findNextMessage() { + global $msort, $currentArrayIndex, $msgs, $sort, + $thread_sort_messages, $allow_server_sort, + $server_sort_array; + if (!is_array($server_sort_array)) { + $thread_sort_messages = 0; + $allow_server_sort = FALSE; + } + $result = -1; + if ($thread_sort_messages == 1 || $allow_server_sort == TRUE) { + reset($server_sort_array); + while(list($key, $value) = each ($server_sort_array)) { + if ($currentArrayIndex == $value) { + if ($key == (count($server_sort_array) - 1)) { + $result = -1; + break; } + $result = $server_sort_array[$key + 1]; + break; } } - return ($result); + } + elseif ($sort == 6 && $allow_server_sort != TRUE && + $thread_sort_messages != 1) { + if ($currentArrayIndex != 1) { + $result = $currentArrayIndex - 1; + } } - - /** Removes just one address from the list of addresses. */ - function RemoveAddress(&$addr_list, $addr) { - if ($addr != '') { - foreach (array_keys($addr_list, $addr) as $key_to_delete) { - unset($addr_list[$key_to_delete]); - } + elseif ($allow_server_sort != TRUE && $thread_sort_messages != 1 ) { + if (!is_array($msort)) { + return -1; } - } - - /** returns the index of the previous message from the array. */ - function findPreviousMessage() { - global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection; - global $mailbox, $data_dir, $username; - $result = -1; - - if ($sort == 6) { - $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); - if ($currentArrayIndex != $numMessages) { - $result = $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)) { - $result = $msgs[$key]['ID']; - break; - } + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]['ID']) { + next($msort); + $key = key($msort); + if (isset($key)){ + $result = $msgs[$key]['ID']; + break; } } - } - return ($result); + } } + return ($result); +} - /** - * Displays a link to a page where the message is displayed more - * "printer friendly". - */ - function printer_friendly_link() { - global $passed_id, $mailbox, $ent_num, $color; - global $pf_subtle_link; - global $javascript_on; - - if (strlen(trim($mailbox)) < 1) { - $mailbox = 'INBOX'; +/** + * Removes just one address from the list of addresses. + * + * @param &$addr_list a by-ref array of addresses + * @param $addr an address to remove + * @return void, since it operates on a by-ref param + */ +function RemoveAddress(&$addr_list, $addr) { + if ($addr != '') { + foreach (array_keys($addr_list, $addr) as $key_to_delete) { + unset($addr_list[$key_to_delete]); } + } +} - $params = '?passed_ent_id=' . $ent_num; - $params .= '&mailbox=' . urlencode($mailbox); - $params .= '&passed_id=' . $passed_id; - - $print_text = _("View Printable Version"); - - if (!$pf_subtle_link) { - /* The link is large, on the bottom of the header panel. */ - $result = '
';
-
- $cnum = 0;
- for ($i=1; $i < count($read); $i++) {
- $line = htmlspecialchars($read[$i]);
- if (eregi("^>", $line)) {
- $second[$i] = $line;
- $first[$i] = ' ';
- $cnum++;
- } else if (eregi("^[ |\t]", $line)) {
- $second[$i] = $line;
- $first[$i] = '';
- } else if (eregi("^([^:]+):(.+)", $line, $regs)) {
- $first[$i] = $regs[1] . ':';
- $second[$i] = $regs[2];
- $cnum++;
- } else {
- $second[$i] = trim($line);
- $first[$i] = '';
- }
- }
- for ($i=0; $i < count($second); $i = $j) {
- if (isset($first[$i])) {
- $f = $first[$i];
- }
- if (isset($second[$i])) {
- $s = nl2br($second[$i]);
- }
- $j = $i + 1;
- while (($first[$j] == '') && ($j < count($first))) {
- $s .= ' ' . nl2br($second[$j]);
- $j++;
- }
- parseEmail($s);
- if (isset($f)) echo " |