summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvncommit <devs@roundcube.net>2007-01-08 02:26:47 +0000
committersvncommit <devs@roundcube.net>2007-01-08 02:26:47 +0000
commitbb85623f8ab1eb263cb0bfac6e1758438eaa5bd2 (patch)
tree587d9f2d63187d21d6345295831e97bda846d32e
parent21b5c77fb0e777b85bc6e9609b57cf4a107b2c6a (diff)
fixed display of HTML attachments
-rw-r--r--CHANGELOG6
-rw-r--r--program/include/rcube_imap.inc2
-rw-r--r--program/steps/mail/func.inc5
-rw-r--r--program/steps/mail/get.inc18
4 files changed, 20 insertions, 11 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 21205e780..a4fe069d6 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 d057e0ec1..544552696 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1121,7 +1121,7 @@ class rcube_imap
/**
- * 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 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);
}