1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
<?php
require_once 'Horde/MIME/Viewer/enriched.php';
/**
* The IMP_MIME_Viewer_enriched class renders out plain text from
* enriched content tags, ala RFC 1896
*
* $Horde: imp/lib/MIME/Viewer/enriched.php,v 1.33.10.9 2008/01/02 11:31:37 jan Exp $
*
* Copyright 2001-2008 The Horde Project (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (GPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
*
* @author Eric Rostetter <eric.rostetter@physics.utexas.edu>
* @package Horde_MIME_Viewer
*/
class IMP_MIME_Viewer_enriched extends MIME_Viewer_enriched {
/**
* Render out the currently set contents.
*
* @param array $params An array with a reference to a MIME_Contents
* object.
*
* @return string The rendered text in HTML.
*/
function render($params)
{
$contents = &$params[0];
global $prefs;
if (($text = $this->mime_part->getContents()) === false) {
return $contents->formatPartError(_("There was an error displaying this message part"));
}
if (trim($text) == '') {
return $text;
}
$text = parent::render();
// Highlight quoted parts of an email.
if ($prefs->getValue('highlight_text')) {
$text = implode("\n", preg_replace('|^(\s*>.+)$|', '<span class="quoted1">\1</span>', explode("\n", $text)));
$indent = 1;
while (preg_match('|>(\s?>){' . $indent . '}|', $text)) {
$text = implode("\n", preg_replace('|^<span class="quoted' . ((($indent - 1) % 5) + 1) . '">(\s*>(\s?>){' . $indent . '}.+)$|', '<span class="quoted' . (($indent % 5) + 1) . '">\1', explode("\n", $text)));
$indent++;
}
}
// Dim signatures.
if ($prefs->getValue('dim_signature')) {
$parts = preg_split('|(\n--\s*\n)|', $text, 2, PREG_SPLIT_DELIM_CAPTURE);
$text = array_shift($parts);
if (count($parts)) {
$text .= '<span class="signature">' . $parts[0] .
preg_replace('|class="[^"]+"|', 'class="signature-fixed"', $parts[1]) .
'</span>';
}
}
// Filter bad language.
$text = IMP::filterText($text);
return $text;
}
}
|