From 330ef6ca44df4111d6f6b33ba0684e865ba8c30e Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 31 Jul 2009 04:55:56 -0400 Subject: [PATCH] Create plugin hook for encrypted message parts + add size property to text part in order to display it --- program/include/rcube_message.php | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php index 9fe9858..0c46945 100644 --- a/program/include/rcube_message.php +++ b/program/include/rcube_message.php @@ -323,8 +323,16 @@ $p->ctype_primary = 'text'; $p->ctype_secondary = 'plain'; $p->body = rcube_label('encryptedmessage'); + $p->size = strlen($p->body); - $this->parts[] = $p; + // maybe some plugins are able to decode this encrypted message part + $data = $this->app->plugins->exec_hook('message_part_encrypted', array('object' => $this, 'struct' => $structure, 'part' => $p)); + if (is_array($data['parts'])) { + $this->parts = array_merge($this->parts, $data['parts']); + } + else if ($data['part']) { + $this->parts[] = $p; + } } // message contains multiple parts else if (is_array($structure->parts) && !empty($structure->parts)) { @@ -382,16 +390,15 @@ if ($message_ctype_secondary == 'appledouble' && $secondary_type == 'applefile') continue; - // part belongs to a related message - if ($message_ctype_secondary == 'related') { + // part belongs to a related message and is linked + if ($message_ctype_secondary == 'related' + && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])) { if ($mail_part->headers['content-id']) $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']); if ($mail_part->headers['content-location']) $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location']; - - if ($mail_part->content_id || $mail_part->content_location) { - $this->inline_parts[] = $mail_part; - } + + $this->inline_parts[] = $mail_part; } // is a regular attachment else { -- Gitblit v1.9.1