summaryrefslogtreecommitdiff
path: root/program/steps/mail/func.inc
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-05-28 15:01:13 +0200
committerAleksander Machniak <alec@alec.pl>2012-05-28 15:01:13 +0200
commit7c1231a94b2a3dddd74b17c7c66bc9d41bb55f47 (patch)
tree83923a527076ba291a7b3b27763b2bfc67474763 /program/steps/mail/func.inc
parente349a8c9ae4adfc1aab48a5461902242930da7bf (diff)
Use browser capabilities to decide if PDF/TIFF attachments should be displayed
in an overlay page/inline or to provide only direct download for them (#1488452, #1487929)
Diffstat (limited to 'program/steps/mail/func.inc')
-rw-r--r--program/steps/mail/func.inc10
1 files changed, 8 insertions, 2 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index fb438c9ed..829f159f4 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1097,6 +1097,12 @@ function rcmail_message_body($attrib)
}
}
+ // Skip TIFF images if browser doesn't support this format
+ // @TODO: we could convert TIFF to JPEG and display it
+ $tiff_support = !empty($_SESSION['browser_caps']) && !empty($_SESSION['browser_caps']['tif']);
+ $mime_regex = $tiff_support ? '/^image\//i' : '/^image\/(?!tif)/i';
+ $ext_regex = '/\.(jpg|jpeg|png|gif|bmp' . ($tiff_support ? '|tif|tiff' : '') .')$/i';
+
// list images after mail body
if ($CONFIG['inline_images'] && !empty($MESSAGE->attachments)) {
foreach ($MESSAGE->attachments as $attach_prop) {
@@ -1106,11 +1112,11 @@ function rcmail_message_body($attrib)
}
// Content-Type: image/*...
- if (preg_match('/^image\//i', $attach_prop->mimetype) ||
+ if (preg_match($mime_regex, $attach_prop->mimetype) ||
// ...or known file extension: many clients are using application/octet-stream
($attach_prop->filename &&
preg_match('/^application\/octet-stream$/i', $attach_prop->mimetype) &&
- preg_match('/\.(jpg|jpeg|png|gif|bmp)$/i', $attach_prop->filename))
+ preg_match($ext_regex, $attach_prop->filename))
) {
$out .= html::tag('hr') . html::p(array('align' => "center"),
html::img(array(