close imapConnection
[squirrelmail.git] / functions / attachment_common.php
CommitLineData
7baf86a9 1<?php
7350889b 2
35586184 3/**
4 * attachment_common.php
5 *
15e6162e 6 * Copyright (c) 1999-2002 The SquirrelMail Project Team
35586184 7 * Licensed under the GNU GPL. For full terms see the file COPYING.
8 *
9 * This file provides the handling of often-used attachment types.
10 *
11 * $Id$
12 */
7baf86a9 13
35586184 14global $attachment_common_show_images_list;
15$attachment_common_show_images_list = array();
bbdd6ddb 16
5bc6067b 17global $FileExtensionToMimeType, $attachment_common_types;
18$FileExtensionToMimeType = array('bmp' => 'image/x-bitmap',
19 'gif' => 'image/gif',
20 'htm' => 'text/html',
21 'html' => 'text/html',
22 'jpg' => 'image/jpeg',
23 'jpeg' => 'image/jpeg',
24 'php' => 'text/plain',
25 'png' => 'image/png',
26 'rtf' => 'text/richtext',
27 'txt' => 'text/plain',
28 'vcf' => 'text/x-vcard');
29
30/* Register browser-supported image types */
31if (isset($attachment_common_types)) {
32 /* Don't run this before being logged in. That may happen
33 when plugins include mime.php */
34 foreach ($attachment_common_types as $val => $v) {
7baf86a9 35 if ($val == 'image/gif')
5bc6067b 36 register_attachment_common('image/gif', 'link_image');
7baf86a9 37 elseif (($val == 'image/jpeg' || $val == 'image/pjpeg') and
38 (!isset($jpeg_done))) {
5bc6067b 39 $jpeg_done = 1;
40 register_attachment_common('image/jpeg', 'link_image');
41 register_attachment_common('image/pjpeg', 'link_image');
7baf86a9 42 }
43 elseif ($val == 'image/png')
5bc6067b 44 register_attachment_common('image/png', 'link_image');
7baf86a9 45 elseif ($val == 'image/x-xbitmap')
5bc6067b 46 register_attachment_common('image/x-xbitmap', 'link_image');
47 }
48 unset($jpeg_done);
49}
7baf86a9 50
5bc6067b 51/* Register text-type attachments */
679f13b7 52//register_attachment_common('message/rfc822', 'link_text');
53register_attachment_common('message/rfc822', 'link_message');
5bc6067b 54register_attachment_common('text/plain', 'link_text');
55register_attachment_common('text/richtext', 'link_text');
7baf86a9 56
5bc6067b 57/* Register HTML */
58register_attachment_common('text/html', 'link_html');
7baf86a9 59
ae2f65a9 60
5bc6067b 61/* Register vcards */
62register_attachment_common('text/x-vcard', 'link_vcard');
7baf86a9 63
ae2f65a9 64/* Register rules for general types.
65 * These will be used if there isn't a more specific rule available. */
66register_attachment_common('text/*', 'link_text');
67register_attachment_common('message/*', 'link_text');
68
5bc6067b 69/* Register "unknown" attachments */
70register_attachment_common('application/octet-stream', 'octet_stream');
7baf86a9 71
72
73/* Function which optimizes readability of the above code */
74
75function register_attachment_common($type, $func) {
5bc6067b 76 global $squirrelmail_plugin_hooks;
77 $squirrelmail_plugin_hooks['attachment ' . $type]['attachment_common'] =
7baf86a9 78 'attachment_common_' . $func;
79}
80
81
82function attachment_common_link_text(&$Args)
83{
5bc6067b 84 /* If there is a text attachment, we would like to create a 'view' button
85 that links to the text attachment viewer.
86
87 $Args[1] = the array of actions
88
89 Use our plugin name for adding an action
90 $Args[1]['attachment_common'] = array for href and text
91
92 $Args[1]['attachment_common']['text'] = What is displayed
93 $Args[1]['attachment_common']['href'] = Where it links to
94
95 This sets the 'href' of this plugin for a new link. */
3bf87aae 96
97 global $QUERY_STRING;
98 $Args[1]['attachment_common']['href'] = '../src/view_text.php?'. $QUERY_STRING;
5bc6067b 99
7baf86a9 100
5bc6067b 101 /* The link that we created needs a name. "view" will be displayed for
102 all text attachments handled by this plugin. */
103 $Args[1]['attachment_common']['text'] = _("view");
679f13b7 104
5bc6067b 105 /* Each attachment has a filename on the left, which is a link.
106 Where that link points to can be changed. Just in case the link above
107 for viewing text attachments is not the same as the default link for
108 this file, we'll change it.
109
110 This is a lot better in the image links, since the defaultLink will just
111 download the image, but the one that we set it to will format the page
112 to have an image tag in the center (looking a lot like this text viewer) */
113 $Args[6] = $Args[1]['attachment_common']['href'];
7baf86a9 114}
115
116
679f13b7 117function attachment_common_link_message(&$Args)
118{
f4c8a5ab 119 $Args[1]['attachment_common']['href'] = '../src/read_body.php?startMessage=' .
679f13b7 120 $Args[2] . '&amp;passed_id=' . $Args[3] . '&amp;mailbox=' . $Args[4] .
121 '&amp;passed_ent_id=' . $Args[5] . '&amp;override_type0=message&amp;override_type1=rfc822';
122 /* The link that we created needs a name. "view" will be displayed for
123 all text attachments handled by this plugin. */
124 $Args[1]['attachment_common']['text'] = _("view");
f4c8a5ab 125
126 $Args[6] = $Args[1]['attachment_common']['href'];
679f13b7 127}
128
129
7baf86a9 130function attachment_common_link_html(&$Args)
131{
5bc6067b 132 $Args[1]['attachment_common']['href'] = '../src/download.php?startMessage=' .
7d89b19d 133 $Args[2] . '&amp;passed_id=' . $Args[3] . '&amp;mailbox=' . $Args[4] .
134 '&amp;passed_ent_id=' . $Args[5] . '&amp;override_type0=text&amp;override_type1=html';
5bc6067b 135
136 if ($Args[8] && $Args[9]) {
7d89b19d 137 $Args[1]['attachment_common']['href'] .= '&amp;where=' .
138 urlencode($Args[8]) . '&amp;what=' . urlencode($Args[9]);
5bc6067b 139 }
140
141 $Args[1]['attachment_common']['text'] = _("view");
142
143 $Args[6] = $Args[1]['attachment_common']['href'];
7baf86a9 144}
145
146
147function attachment_common_link_image(&$Args)
148{
5bc6067b 149 global $attachment_common_show_images, $attachment_common_show_images_list;
150
151 $info['passed_id'] = $Args[3];
152 $info['mailbox'] = $Args[4];
153 $info['ent_id'] = $Args[5];
154
155 $attachment_common_show_images_list[] = $info;
156
157 $Args[1]['attachment_common']['href'] = '../src/image.php?startMessage=' .
7d89b19d 158 $Args[2] . '&amp;passed_id=' . $Args[3] . '&amp;mailbox=' . $Args[4] .
159 '&amp;passed_ent_id=' . $Args[5];
5bc6067b 160
161 if ($Args[8] && $Args[9]) {
7d89b19d 162 $Args[1]['attachment_common']['href'] .= '&amp;where=' .
163 urlencode($Args[8]) . '&amp;what=' . urlencode($Args[9]);
5bc6067b 164 }
cd7b8833 165
5bc6067b 166 $Args[1]['attachment_common']['text'] = _("view");
167
168 $Args[6] = $Args[1]['attachment_common']['href'];
f4c8a5ab 169
7baf86a9 170}
171
172
173function attachment_common_link_vcard(&$Args)
174{
5bc6067b 175 $Args[1]['attachment_common']['href'] = '../src/vcard.php?startMessage=' .
7d89b19d 176 $Args[2] . '&amp;passed_id=' . $Args[3] . '&amp;mailbox=' . $Args[4] .
177 '&amp;passed_ent_id=' . $Args[5];
5bc6067b 178
179 if (isset($where) && isset($what))
7d89b19d 180 $Args[1]['attachment_common']['href'] .= '&amp;where=' .
181 urlencode($Args[8]) . '&amp;what=' . urlencode($Args[9]);
5bc6067b 182
183 $Args[1]['attachment_common']['text'] = _("Business Card");
184
185 $Args[6] = $Args[1]['attachment_common']['href'];
7baf86a9 186}
187
188
189function attachment_common_octet_stream(&$Args)
190{
5bc6067b 191 global $FileExtensionToMimeType;
7baf86a9 192
5bc6067b 193 do_hook('attachment_common-load_mime_types');
7baf86a9 194
5bc6067b 195 ereg('\\.([^\\.]+)$', $Args[7], $Regs);
7baf86a9 196
5bc6067b 197 $Ext = strtolower($Regs[1]);
7baf86a9 198
5bc6067b 199 if ($Ext == '' || ! isset($FileExtensionToMimeType[$Ext]))
200 return;
7baf86a9 201
5bc6067b 202 $Ret = do_hook('attachment ' . $FileExtensionToMimeType[$Ext],
203 $Args[1], $Args[2], $Args[3], $Args[4], $Args[5], $Args[6],
204 $Args[7], $Args[8], $Args[9]);
7baf86a9 205
5bc6067b 206 foreach ($Ret as $a => $b) {
207 $Args[$a] = $b;
208 }
7baf86a9 209}
210
ae2f65a9 211?>