diff options
author | Aleksander Machniak <alec@alec.pl> | 2015-03-08 10:51:19 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2015-03-08 10:51:19 +0100 |
commit | 9af8e22b8ea3bd4fe9e05860058d7fce29019455 (patch) | |
tree | 649a010858db57f89e4b448ca71a59d66ee0fc1a /program/lib/Roundcube/rcube_message.php | |
parent | 7ff227eb3eda915bf40a596f7ab727e3d0e0861b (diff) |
Plugin API: added message_part_body hook, fixes around message structure handling by plugins
Diffstat (limited to 'program/lib/Roundcube/rcube_message.php')
-rw-r--r-- | program/lib/Roundcube/rcube_message.php | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php index 8af334446..b135ae0ff 100644 --- a/program/lib/Roundcube/rcube_message.php +++ b/program/lib/Roundcube/rcube_message.php @@ -53,13 +53,13 @@ class rcube_message public $uid; public $folder; public $headers; - public $parts = array(); - public $mime_parts = array(); + public $sender; + public $parts = array(); + public $mime_parts = array(); public $inline_parts = array(); - public $attachments = array(); - public $subject = ''; - public $sender = null; - public $is_safe = false; + public $attachments = array(); + public $subject = ''; + public $is_safe = false; const BODY_MAX_SIZE = 1048576; // 1MB @@ -217,6 +217,10 @@ class rcube_message return; } + // allow plugins to modify part body + $plugin = $this->app->plugins->exec_hook('message_part_body', + array('object' => $this, 'part' => $part)); + // only text parts can be formatted $formatted = $formatted && $part->ctype_primary == 'text'; @@ -499,8 +503,9 @@ class rcube_message $structure->headers = rcube_mime::parse_headers($headers); } } - else + else { $mimetype = $structure->mimetype; + } // show message headers if ($recursive && is_array($structure->headers) && @@ -516,11 +521,15 @@ class rcube_message array('object' => $this, 'structure' => $structure, 'mimetype' => $mimetype, 'recursive' => $recursive)); - if ($plugin['abort']) + if ($plugin['abort']) { return; + } $structure = $plugin['structure']; - list($message_ctype_primary, $message_ctype_secondary) = explode('/', $plugin['mimetype']); + $mimetype = $plugin['mimetype']; + $recursive = $plugin['recursive']; + + list($message_ctype_primary, $message_ctype_secondary) = explode('/', $mimetype); // print body if message doesn't have multiple parts if ($message_ctype_primary == 'text' && !$recursive) { @@ -673,7 +682,7 @@ class rcube_message } else { $part_mimetype = $part_orig_mimetype = $mail_part->mimetype; - } + } // multipart/alternative if ($primary_type == 'multipart') { |