From 7c1231a94b2a3dddd74b17c7c66bc9d41bb55f47 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 28 May 2012 09:01:13 -0400
Subject: [PATCH] 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)

---
 program/steps/mail/func.inc |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index fb438c9..829f159 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1097,6 +1097,12 @@
     }
   }
 
+  // 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 @@
       }
 
       // 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(

--
Gitblit v1.9.1