From: Michael M Slusarz Date: Mon, 30 Mar 2009 23:50:21 +0000 (-0600) Subject: Request #7487: Link URLs/e-mails in subjects in message views. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f0fc63ddef6c4afef3f9517457e1cd6157eeec3d;p=horde.git Request #7487: Link URLs/e-mails in subjects in message views. --- diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES index 80e8affad..e8570ee76 100644 --- a/imp/docs/CHANGES +++ b/imp/docs/CHANGES @@ -2,6 +2,7 @@ v5.0-git -------- +[mms] Link URLs/e-mails in subjects in message views (Request #7487). [mms] Implement spellcheck on send in DIMP. [mms] Sanity check - don't do message operations reliant on UID list if UIDVALIDITY of mailbox has changed. diff --git a/imp/lib/UI/Message.php b/imp/lib/UI/Message.php index c82ec74a6..5f0fa6c4b 100644 --- a/imp/lib/UI/Message.php +++ b/imp/lib/UI/Message.php @@ -414,4 +414,24 @@ class IMP_UI_Message return implode("\n", $out) . "\n\n"; } + /** + * Get the display subject (filtered, formatted, and linked). + * + * @param string $subject The subject text. + * + * @return string The display subject string. + */ + public function getDisplaySubject($subject) + { + require_once 'Horde/Text.php'; + require_once 'Horde/Text/Filter.php'; + + $subject = IMP::filterText($subject); + if (!($disp_subject = Text::htmlSpaces($subject))) { + $disp_subject = $subject; + } + + return Text_Filter::filter($disp_subject, 'text2html', array('parselevel' => TEXT_HTML_MICRO, 'class' => null, 'callback' => null)); + } + } diff --git a/imp/lib/Views/ShowMessage.php b/imp/lib/Views/ShowMessage.php index 53daf408f..ae23cb97b 100644 --- a/imp/lib/Views/ShowMessage.php +++ b/imp/lib/Views/ShowMessage.php @@ -216,12 +216,9 @@ class IMP_Views_ShowMessage } /* Process the subject. */ - if (($subject = $mime_headers->getValue('subject'))) { - require_once 'Horde/Text.php'; - $result['subject'] = Text::htmlSpaces(IMP::filterText($subject)); - } else { - $result['subject'] = htmlspecialchars(_("[No Subject]")); - } + $result['subject'] = ($subject = $mime_headers->getValue('subject')) + ? $imp_ui->getDisplaySubject($subject) + : htmlspecialchars(_("[No Subject]")); /* Get X-Priority. */ $result['priority'] = $imp_ui->getXpriority($mime_headers->getValue('x-priority')); diff --git a/imp/message.php b/imp/message.php index 369592dde..7cb3f725b 100644 --- a/imp/message.php +++ b/imp/message.php @@ -287,13 +287,8 @@ foreach (array('to', 'cc', 'bcc') as $val) { } /* Process the subject now. */ -if (($subject = $mime_headers->getValue('subject'))) { - /* Filter the subject text, if requested. */ - require_once 'Horde/Text.php'; - $subject = IMP::filterText($subject); - $disp_subject = Text::htmlSpaces($subject); - $display_headers['subject'] = $disp_subject ? $disp_subject : $subject; - +if ($subject = $mime_headers->getValue('subject')) { + $display_headers['subject'] = $imp_ui->getDisplaySubject($subject); $title = sprintf(_("%s: %s"), $page_label, $subject); $shortsub = htmlspecialchars($subject); } else {