X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fread_body.php;h=1139ea45df2ba8d029c3511c841dae417c6c2ec5;hp=866422d54163c0119445eaa163172c725d95fbb6;hb=19d470aa121cacdd916319ec6b55af180562805e;hpb=cd7b8833879bcf92e21ba7f2da527493358fdda5 diff --git a/src/read_body.php b/src/read_body.php index 866422d5..1139ea45 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -17,62 +17,97 @@ require_once('../functions/imap.php'); require_once('../functions/mime.php'); require_once('../functions/date.php'); require_once('../functions/url_parser.php'); +require_once('../functions/smtp.php'); +require_once('../functions/html.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; + * 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($passed_id) { + global $msort, $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 ($sort == 6) { - if ($currentArrayIndex != 1) { - $result = $currentArrayIndex - 1; + if ($thread_sort_messages || $allow_server_sort) { + reset($server_sort_array); + while(list($key, $value) = each ($server_sort_array)) { + if ($passed_id == $value) { + if ($key == (count($server_sort_array) - 1)) { + $result = -1; + break; + } + $result = $server_sort_array[$key + 1]; + break; + } + } + } else if ($sort == 6 && !$allow_server_sort && + !$thread_sort_messages ) { + if ($passed_id != 1) { + $result = $passed_id - 1; + } + } else if (!$allow_server_sort && !$thread_sort_messages ) { + if (!is_array($msort)) { + return -1; } - } else { for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { - if ($currentArrayIndex == $msgs[$key]['ID']) { + if ($passed_id == $msgs[$key]['ID']) { next($msort); $key = key($msort); - if (isset($key)) + if (isset($key)){ $result = $msgs[$key]['ID']; break; + } } } } return ($result); } -/** 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]); - } - } -} - /** returns the index of the previous message from the array. */ -function findPreviousMessage() { - global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection; - global $mailbox, $data_dir, $username; +function findPreviousMessage($numMessages, $passed_id) { + global $msort, $sort, $msgs, + $thread_sort_messages, + $allow_server_sort, $server_sort_array; $result = -1; - - if ($sort == 6) { - $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); - if ($currentArrayIndex != $numMessages) { - $result = $currentArrayIndex + 1; + if (!is_array($server_sort_array)) { + $thread_sort_messages = 0; + $allow_server_sort = FALSE; + } + if ($thread_sort_messages || $allow_server_sort ) { + reset($server_sort_array); + while(list($key, $value) = each ($server_sort_array)) { + if ($passed_id == $value) { + if ($key == 0) { + $result = -1; + break; + } + $result = $server_sort_array[$key -1]; + break; + } + } + } else if ($sort == 6 && !$allow_server_sort && + !$thread_sort_messages) { + if ($passed_id != $numMessages) { + $result = $passed_id + 1; + } + } else if (!$thread_sort_messages && !$allow_server_sort) { + if (!is_array($msort)) { + return -1; } - } else { for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { - if ($currentArrayIndex == $msgs[$key]['ID']) { + if ($passed_id == $msgs[$key]['ID']) { prev($msort); $key = key($msort); if (isset($key)) { + //echo $msort[$key]; /* Why again were we echoing here? */ $result = $msgs[$key]['ID']; break; } @@ -83,38 +118,22 @@ function findPreviousMessage() { } /** -* 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; + * Displays a link to a page where the message is displayed more + * "printer friendly". + */ +function printer_friendly_link($mailbox, $passed_id, $passed_ent_id, $color) { global $javascript_on; - if (strlen(trim($mailbox)) < 1) { - $mailbox = 'INBOX'; - } - - $params = '?passed_ent_id=' . $ent_num; - $params .= '&mailbox=' . urlencode($mailbox); - $params .= '&passed_id=' . $passed_id; + $params = '?passed_ent_id=' . $passed_ent_id . + '&mailbox=' . urlencode($mailbox) . + '&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 " |