Source for file attachment_common.php
Documentation is available at attachment_common.php
* This file provides the handling of often-used attachment types.
* @copyright 1999-2020 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id: attachment_common.php 14840 2020-01-07 07:42:38Z pdontthink $
* FIXME Needs phpDocumentator style documentation
require_once(SM_PATH .
'functions/global.php');
global $attachment_common_show_images_list;
$attachment_common_show_images_list =
array();
global $FileExtensionToMimeType, $attachment_common_types;
$FileExtensionToMimeType =
array('bmp' =>
'image/x-bitmap',
'rtf' =>
'text/richtext',
'vcf' =>
'text/x-vcard');
/* Register browser-supported image types */
if (isset
($attachment_common_types)) {
// var is used to detect activation of jpeg image types
/* Don't run this before being logged in. That may happen
when plugins include mime.php */
foreach ($attachment_common_types as $val =>
$v) {
elseif (($val ==
'image/jpeg' ||
$val ==
'image/pjpeg') and
elseif ($val ==
'image/png')
elseif ($val ==
'image/x-xbitmap')
elseif ($val ==
'*/*' ||
$val ==
'image/*') {
* browser (Firefox) declared that anything is acceptable.
* Lets register some common image types.
if (! isset
($jpeg_done)) {
/* Register text-type attachments */
/* Register rules for general types.
* These will be used if there isn't a more specific rule available. */
/* Register "unknown" attachments */
/* Function which optimizes readability of the above code */
global $squirrelmail_plugin_hooks;
$squirrelmail_plugin_hooks['attachment ' .
$type]['attachment_common'] =
'attachment_common_' .
$func;
global $squirrelmail_attachments_finished_handling;
// TODO: The two lines below used to only depend on $Args[7] (the so-called "display filename") but that prevents attachments with the same name from having "View" links, which makes no sense.... however, was there originally some use case where this made sense?? For now, I've added the entity ID to make it unique
if (!empty($squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]])) return;
$squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]] =
TRUE;
/* If there is a text attachment, we would like to create a "View" button
that links to the text attachment viewer.
$Args[1] = the array of actions
Use the name of this file for adding an action
$Args[1]['attachment_common'] = Array for href and text
$Args[1]['attachment_common']['text'] = What is displayed
$Args[1]['attachment_common']['href'] = Where it links to */
$Args[1]['attachment_common']['href'] =
SM_PATH .
'src/view_text.php?'.
$QUERY_STRING;
$Args[1]['attachment_common']['href'] =
/* The link that we created needs a name. */
$Args[1]['attachment_common']['text'] =
_("View");
/* Each attachment has a filename on the left, which is a link.
Where that link points to can be changed. Just in case the link above
for viewing text attachments is not the same as the default link for
this file, we'll change it.
This is a lot better in the image links, since the defaultLink will just
download the image, but the one that we set it to will format the page
to have an image tag in the center (looking a lot like this text viewer) */
$Args[6] =
$Args[1]['attachment_common']['href'];
global $squirrelmail_attachments_finished_handling;
// TODO: The two lines below used to only depend on $Args[7] (the so-called "display filename") but that prevents attachments with the same name from having "View" links, which makes no sense.... however, was there originally some use case where this made sense?? For now, I've added the entity ID to make it unique
if (!empty($squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]])) return;
$squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]] =
TRUE;
$Args[1]['attachment_common']['href'] =
SM_PATH .
'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';
$Args[1]['attachment_common']['text'] =
_("View");
$Args[6] =
$Args[1]['attachment_common']['href'];
global $squirrelmail_attachments_finished_handling;
// TODO: The two lines below used to only depend on $Args[7] (the so-called "display filename") but that prevents attachments with the same name from having "View" links, which makes no sense.... however, was there originally some use case where this made sense?? For now, I've added the entity ID to make it unique
if (!empty($squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]])) return;
$squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]] =
TRUE;
$Args[1]['attachment_common']['href'] =
SM_PATH .
'src/view_text.php?'.
$QUERY_STRING.
/* why use the overridetype? can this be removed */
'&override_type0=text&override_type1=html';
$Args[1]['attachment_common']['href'] =
$Args[1]['attachment_common']['text'] =
_("View");
$Args[6] =
$Args[1]['attachment_common']['href'];
global $squirrelmail_attachments_finished_handling;
// TODO: The two lines below used to only depend on $Args[7] (the so-called "display filename") but that prevents attachments with the same name from having "View" links, which makes no sense.... however, was there originally some use case where this made sense?? For now, I've added the entity ID to make it unique
if (!empty($squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]])) return;
$squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]] =
TRUE;
global $attachment_common_show_images, $attachment_common_show_images_list;
$info['passed_id'] =
$Args[3];
$info['mailbox'] =
$Args[4];
$info['ent_id'] =
$Args[5];
$attachment_common_show_images_list[] =
$info;
$Args[1]['attachment_common']['href'] =
SM_PATH .
'src/image.php?'.
$QUERY_STRING;
$Args[1]['attachment_common']['href'] =
$Args[1]['attachment_common']['text'] =
_("View");
$Args[6] =
$Args[1]['attachment_common']['href'];
global $squirrelmail_attachments_finished_handling;
// TODO: The two lines below used to only depend on $Args[7] (the so-called "display filename") but that prevents attachments with the same name from having "View" links, which makes no sense.... however, was there originally some use case where this made sense?? For now, I've added the entity ID to make it unique
if (!empty($squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]])) return;
$squirrelmail_attachments_finished_handling[$Args[7] .
$Args[5]] =
TRUE;
$Args[1]['attachment_common']['href'] =
SM_PATH .
'src/vcard.php?'.
$QUERY_STRING;
$Args[1]['attachment_common']['href'] =
$Args[1]['attachment_common']['text'] =
_("View Business Card");
$Args[6] =
$Args[1]['attachment_common']['href'];
global $FileExtensionToMimeType;
do_hook('attachment_common-load_mime_types');
if (is_array($Regs) && isset
($Regs[1])) {
if ($Ext ==
'' ||
! isset
($FileExtensionToMimeType[$Ext]))
$Ret =
do_hook('attachment ' .
$FileExtensionToMimeType[$Ext],
$Args[1], $Args[2], $Args[3], $Args[4], $Args[5], $Args[6],
$Args[7], $Args[8], $Args[9]);
foreach ($Ret as $a =>
$b) {
Documentation generated on Mon, 13 Jan 2020 04:24:14 +0100 by phpDocumentor 1.4.3