From bb85623f8ab1eb263cb0bfac6e1758438eaa5bd2 Mon Sep 17 00:00:00 2001 From: svncommit <devs@roundcube.net> Date: Sun, 07 Jan 2007 21:26:47 -0500 Subject: [PATCH] fixed display of HTML attachments --- CHANGELOG | 6 ++++++ program/steps/mail/func.inc | 5 ++--- program/steps/mail/get.inc | 18 +++++++++++------- program/include/rcube_imap.inc | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 21205e7..a4fe069 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,11 +1,17 @@ CHANGELOG RoundCube Webmail --------------------------- +2007/01/07 (estadtherr) +---------- +- Fixed display of HTML message attachments (closes #1484178) + + 2007/01/07 (thomasb) ---------- - Applied patch for preview caching (closes #1484186) - Added Thai and Vietnamese localization files + 2006/12/29 (thomasb) ---------- - Added error handling for attachment uploads diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index d057e0e..5445526 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -1121,7 +1121,7 @@ /** - * Return a flat array with references to all parts, indexed by part numbmers + * Return a flat array with references to all parts, indexed by part numbers * * @param object Message body structure * @return Array with part number -> object pairs diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 522a1c2..a44d81a 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -973,7 +973,7 @@ 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; @@ -994,7 +994,6 @@ } } } - // if this was a related part try to resolve references if ($message_ctype_secondary=='related' && sizeof($sa_inline_objects)) @@ -1501,4 +1500,4 @@ } -?> +?> \ No newline at end of file diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index e1ae281..995a485 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -88,15 +88,20 @@ 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 { // turn off output buffering and print part content - //@ob_end_clean(); $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part->encoding, true); } -- Gitblit v1.9.1