/**
* attachment_common.php
*
- * Copyright (c) 1999-2005 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
* This file provides the handling of often-used attachment types.
*
+ * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
* @todo document attachment $type hook arguments
*/
-/** @ignore */
-if (! defined('SM_PATH')) define('SM_PATH','../');
-
-/** sqgetGlobalVar() */
-include_once(SM_PATH . 'functions/global.php');
-/** sqm_baseuri() */
-include_once(SM_PATH . 'functions/display_messages.php');
-
-global $attachment_common_show_images_list;
$attachment_common_show_images_list = array();
-global $FileExtensionToMimeType, $attachment_common_types;
+/**
+ * Mapping of file extensions to mime types
+ *
+ * Used for application/octet-stream mime type detection.
+ * Supported extensions: bmp, gif, htm, html, jpg, jpeg, php,
+ * png, rtf, txt, patch (since 1.4.2), vcf
+ * @global array $FileExtensionToMimeType
+ */
$FileExtensionToMimeType = array('bmp' => 'image/x-bitmap',
'gif' => 'image/gif',
'htm' => 'text/html',
'html' => 'text/html',
+ 'jpe' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'php' => 'text/plain',
/* Register browser-supported image types */
sqgetGlobalVar('attachment_common_types', $attachment_common_types);
+// FIXME: do we use $attachment_common_types that is not extracted by sqgetGlobalVar() ?
if (isset($attachment_common_types)) {
+ // var is used to detect activation of jpeg image types
+ unset($jpeg_done);
/* Don't run this before being logged in. That may happen
when plugins include mime.php */
foreach ($attachment_common_types as $val => $v) {
if ($val == 'image/gif')
register_attachment_common('image/gif', 'link_image');
- elseif (($val == 'image/jpeg' || $val == 'image/pjpeg') and
+ elseif (($val == 'image/jpeg' || $val == 'image/pjpeg' || $val == 'image/jpg') and
(!isset($jpeg_done))) {
$jpeg_done = 1;
+ register_attachment_common('image/jpg', 'link_image');
register_attachment_common('image/jpeg', 'link_image');
register_attachment_common('image/pjpeg', 'link_image');
}
register_attachment_common('image/png', 'link_image');
elseif ($val == 'image/x-xbitmap')
register_attachment_common('image/x-xbitmap', 'link_image');
+ elseif ($val == '*/*' || $val == 'image/*') {
+ /**
+ * browser (Firefox) declared that anything is acceptable.
+ * Lets register some common image types.
+ */
+ if (! isset($jpeg_done)) {
+ $jpeg_done = 1;
+ register_attachment_common('image/jpg', 'link_image');
+ register_attachment_common('image/jpeg', 'link_image');
+ register_attachment_common('image/pjpeg', 'link_image');
+ }
+ register_attachment_common('image/gif', 'link_image');
+ register_attachment_common('image/png', 'link_image');
+ register_attachment_common('image/x-xbitmap', 'link_image');
+ // register_attachment_common('image/x-ico', 'link_image');
+ // register_attachment_common('image/x-icon', 'link_image');
+ // register_attachment_common('image/bmp', 'link_image');
+ // register_attachment_common('image/x-ms-bmp', 'link_image');
+ }
}
unset($jpeg_done);
}
* @since 1.2.0
*/
function attachment_common_link_text(&$Args) {
+ global $base_uri;
/* If there is a text attachment, we would like to create a "View" button
that links to the text attachment viewer.
sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
// if htmlspecialchars() breaks something - find other way to encode & in url.
- $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING);
+ $Args[1]['attachment_common']['href'] = $base_uri . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING);
$Args[1]['attachment_common']['href'] =
set_url_var($Args[1]['attachment_common']['href'],
'ent_id',$Args[5]);
* @since 1.2.6
*/
function attachment_common_link_message(&$Args) {
- $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/read_body.php?startMessage=' .
+ global $base_uri;
+ $Args[1]['attachment_common']['href'] = $base_uri . 'src/read_body.php?startMessage=' .
$Args[2] . '&passed_id=' . $Args[3] . '&mailbox=' . $Args[4] .
'&passed_ent_id=' . $Args[5] . '&override_type0=message&override_type1=rfc822';
* @since 1.2.0
*/
function attachment_common_link_html(&$Args) {
+ global $base_uri;
sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
- $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING).
+ $Args[1]['attachment_common']['href'] = $base_uri . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING).
/* why use the overridetype? can this be removed */
/* override_type might be needed only when we want view other type of messages as html */
'&override_type0=text&override_type1=html';
* @since 1.2.0
*/
function attachment_common_link_image(&$Args) {
- global $attachment_common_show_images_list;
+ global $attachment_common_show_images_list, $base_uri ;
sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
$info['passed_id'] = $Args[3];
$info['mailbox'] = $Args[4];
$info['ent_id'] = $Args[5];
-
+ $info['name'] = $Args[7];
+ $info['download_href'] = isset($Args[1]['download link']) ? $Args[1]['download link']['href'] : '';
+
$attachment_common_show_images_list[] = $info;
- $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/image.php?'. htmlspecialchars($QUERY_STRING);
+ $Args[1]['attachment_common']['href'] = $base_uri . 'src/image.php?'. htmlspecialchars($QUERY_STRING);
$Args[1]['attachment_common']['href'] =
set_url_var($Args[1]['attachment_common']['href'],
'ent_id',$Args[5]);
* @since 1.2.0
*/
function attachment_common_link_vcard(&$Args) {
+ global $base_uri;
sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
- $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/vcard.php?'. htmlspecialchars($QUERY_STRING);
+ $Args[1]['attachment_common']['href'] = $base_uri . 'src/vcard.php?'. htmlspecialchars($QUERY_STRING);
$Args[1]['attachment_common']['href'] =
set_url_var($Args[1]['attachment_common']['href'],
'ent_id',$Args[5]);
$Args[$a] = $b;
}
}
-
-?>
\ No newline at end of file