From bb85623f8ab1eb263cb0bfac6e1758438eaa5bd2 Mon Sep 17 00:00:00 2001 From: svncommit Date: Mon, 8 Jan 2007 02:26:47 +0000 Subject: fixed display of HTML attachments --- program/steps/mail/func.inc | 5 ++--- program/steps/mail/get.inc | 18 +++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'program/steps') diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 522a1c2bb..a44d81a1d 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -973,7 +973,7 @@ function rcmail_parse_message(&$structure, $arg=array(), $recursive=FALSE) else if ($mail_part->disposition=='attachment' || $mail_part->disposition=='inline' || $mail_part->headers['content-id'] || (empty($mail_part->disposition) && ($mail_part->d_parameters['filename'] || $mail_part->ctype_parameters['name']))) { - // skip apple ressource files + // skip apple resource forks if ($message_ctype_secondary=='appledouble' && $secondary_type=='applefile') continue; @@ -995,7 +995,6 @@ function rcmail_parse_message(&$structure, $arg=array(), $recursive=FALSE) } } - // if this was a related part try to resolve references if ($message_ctype_secondary=='related' && sizeof($sa_inline_objects)) { @@ -1501,4 +1500,4 @@ function rcmail_compose_cleanup() } -?> +?> \ No newline at end of file diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index e1ae281e4..995a4857f 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -88,15 +88,20 @@ else if ($pid = get_input_value('_part', RCUBE_INPUT_GET)) if ($ctype_primary=='text' && $ctype_secondary=='html') { // we have to analyze the whole structure again to find inline objects - list($MESSAGE['parts']) = rcmail_parse_message($MESSAGE['structure'], - array('safe' => (bool)$_GET['_safe'], - 'prefer_html' => TRUE, - 'get_url' => $GET_URL.'&_part=%s')); - $part = &$MESSAGE['parts'][0]; + list($new_parts, $new_attachments) = + rcmail_parse_message($MESSAGE['structure'], + array('safe' => (bool)$_GET['_safe'], + 'prefer_html' => TRUE, + 'get_url' => $GET_URL.'&_part=%s')); + + $all_parts = array_merge($new_parts, $new_attachments); + for ($partix = 0; $partix < sizeof($all_parts); $partix++) + if ($all_parts[$partix]->mime_id == $pid) + $part = &$all_parts[$partix]; // get part body if not available if (!$part->body) - $part->body = $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part); + $part->body = $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part); $OUTPUT = new rcube_html_page(); $OUTPUT->write(rcmail_print_body($part, (bool)$_GET['_safe'])); @@ -104,7 +109,6 @@ else if ($pid = get_input_value('_part', RCUBE_INPUT_GET)) else { // turn off output buffering and print part content - //@ob_end_clean(); $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part->encoding, true); } -- cgit v1.2.3