summaryrefslogtreecommitdiff
path: root/program/steps/mail/compose.inc
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-03-18 10:01:28 +0000
committeralecpl <alec@alec.pl>2010-03-18 10:01:28 +0000
commitb575fa9008c3d96fa69e2c0baae93b11007ec5eb (patch)
treeeaaef78a34dde9dd2e4146243bc299d7594ea499 /program/steps/mail/compose.inc
parent98c489e9f49de6a4442821614d5e69b36173eeab (diff)
- Fix blocked.gif attachment is not attached to the message (#1486516)
Diffstat (limited to 'program/steps/mail/compose.inc')
-rw-r--r--program/steps/mail/compose.inc46
1 files changed, 44 insertions, 2 deletions
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index a8b2fa5f2..3c489ef23 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -475,8 +475,19 @@ function rcmail_compose_body($attrib)
$plugin = $RCMAIL->plugins->exec_hook('message_compose_body',
array('body' => $body, 'html' => $isHtml, 'mode' => $compose_mode));
- $body = $plugin['body'];
-
+ $body = $plugin['body'];
+ unset($plugin);
+
+ // add blocked.gif attachment (#1486516)
+ if ($isHtml && preg_match('#<img src="\./program/blocked\.gif"#', $body)) {
+ if ($attachment = rcmail_save_image('program/blocked.gif', 'image/gif')) {
+ $_SESSION['compose']['attachments'][$attachment['id']] = $attachment;
+ $body = preg_replace('#\./program/blocked\.gif#',
+ $RCMAIL->comm_path.'&_action=display-attachment&_file=rcmfile'.$attachment['id'],
+ $body);
+ }
+ }
+
$out = $form_start ? "$form_start\n" : '';
$saveid = new html_hiddenfield(array('name' => '_draft_saveid', 'value' => $compose_mode==RCUBE_COMPOSE_DRAFT ? str_replace(array('<','>'), "", $MESSAGE->headers->messageID) : ''));
@@ -779,6 +790,37 @@ function rcmail_save_attachment(&$message, $pid)
return false;
}
+function rcmail_save_image($path, $mimetype='')
+{
+ // handle attachments in memory
+ $data = file_get_contents($path);
+
+ $attachment = array(
+ 'name' => rcmail_basename($path),
+ 'mimetype' => $mimetype ? $mimetype : rc_mime_content_type($path, $name),
+ 'data' => $data,
+ 'size' => strlen($data),
+ );
+
+ $attachment = rcmail::get_instance()->plugins->exec_hook('save_attachment', $attachment);
+
+ if ($attachment['status']) {
+ unset($attachment['data'], $attachment['status'], $attachment['content_id'], $attachment['abort']);
+ return $attachment;
+ }
+
+ return false;
+}
+
+function rcmail_basename($filename)
+{
+ // basename() is not unicode safe and locale dependent
+ if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware')) {
+ return preg_replace('/^.*[\\\\\\/]/', '', $filename);
+ } else {
+ return preg_replace('/^.*[\/]/', '', $filename);
+ }
+}
function rcmail_compose_subject($attrib)
{