Overview

Packages

  • Mime
    • Viewer

Classes

  • Horde_Mime_Viewer
  • Horde_Mime_Viewer_Audio
  • Horde_Mime_Viewer_Base
  • Horde_Mime_Viewer_Deb
  • Horde_Mime_Viewer_Default
  • Horde_Mime_Viewer_Enriched
  • Horde_Mime_Viewer_Exception
  • Horde_Mime_Viewer_Html
  • Horde_Mime_Viewer_Images
  • Horde_Mime_Viewer_Msexcel
  • Horde_Mime_Viewer_Mspowerpoint
  • Horde_Mime_Viewer_Msword
  • Horde_Mime_Viewer_Ooo
  • Horde_Mime_Viewer_Pdf
  • Horde_Mime_Viewer_Plain
  • Horde_Mime_Viewer_Rar
  • Horde_Mime_Viewer_Report
  • Horde_Mime_Viewer_Rfc822
  • Horde_Mime_Viewer_Richtext
  • Horde_Mime_Viewer_Rpm
  • Horde_Mime_Viewer_Rtf
  • Horde_Mime_Viewer_Security
  • Horde_Mime_Viewer_Simple
  • Horde_Mime_Viewer_Smil
  • Horde_Mime_Viewer_Syntaxhighlighter
  • Horde_Mime_Viewer_Tgz
  • Horde_Mime_Viewer_Tnef
  • Horde_Mime_Viewer_Translation
  • Horde_Mime_Viewer_Wordperfect
  • Horde_Mime_Viewer_Zip
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * The Horde_Mime_Viewer_Plain class renders out plain text with URLs made
 4:  * into hyperlinks (if viewing inline).
 5:  *
 6:  * Copyright 1999-2012 Horde LLC (http://www.horde.org/)
 7:  *
 8:  * See the enclosed file COPYING for license information (LGPL). If you
 9:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
10:  *
11:  * @author   Anil Madhavapeddy <anil@recoil.org>
12:  * @author   Michael Slusarz <slusarz@horde.org>
13:  * @category Horde
14:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
15:  * @package  Mime_Viewer
16:  */
17: class Horde_Mime_Viewer_Plain extends Horde_Mime_Viewer_Base
18: {
19:     /**
20:      * This driver's display capabilities.
21:      *
22:      * @var array
23:      */
24:     protected $_capability = array(
25:         'full' => true,
26:         'info' => false,
27:         'inline' => true,
28:         'raw' => false
29:     );
30: 
31:     /**
32:      * Return the full rendered version of the Horde_Mime_Part object.
33:      *
34:      * @return array  See parent::render().
35:      */
36:     protected function _render()
37:     {
38:         $text = $this->_mimepart->getContents();
39:         $charset = $this->_mimepart->getCharset();
40: 
41:         /* Check for 'flowed' text data. */
42:         if ($this->_mimepart->getContentTypeParameter('format') == 'flowed') {
43:             $text = $this->_formatFlowed($text, $this->_mimepart->getContentTypeParameter('delsp'));
44:         }
45: 
46:         $text = '<html><body><tt>' . $this->_textFilter($text, 'Text2html', array(
47:             'charset' => $charset,
48:             'parselevel' => Horde_Text_Filter_Text2html::MICRO_LINKURL
49:         )) . '</tt></body></html>';
50: 
51:         return $this->_renderReturn(
52:             $text,
53:             'text/html; charset=' . $charset
54:         );
55:     }
56: 
57:     /**
58:      * Return the rendered inline version of the Horde_Mime_Part object.
59:      *
60:      * @return array  See parent::render().
61:      */
62:     protected function _renderInline()
63:     {
64:         $text = Horde_String::convertCharset($this->_mimepart->getContents(), $this->_mimepart->getCharset(), 'UTF-8');
65: 
66:         /* Check for 'flowed' text data. */
67:         $data = ($this->_mimepart->getContentTypeParameter('format') == 'flowed')
68:             ? $this->_formatFlowed($text, $this->_mimepart->getContentTypeParameter('delsp'))
69:             : $text;
70: 
71:         return $this->_renderReturn(
72:             $data,
73:             'text/html; charset=UTF-8'
74:         );
75:     }
76: 
77:     /**
78:      * Format flowed text for HTML output.
79:      *
80:      * @param string $text    The text to format.
81:      * @param boolean $delsp  Was text created with DelSp formatting?
82:      *
83:      * @return string  The formatted text.
84:      */
85:     protected function _formatFlowed($text, $delsp = null)
86:     {
87:         $flowed = new Horde_Text_Flowed($text, $this->_mimepart->getCharset());
88:         $flowed->setMaxLength(0);
89:         if (!is_null($delsp)) {
90:             $flowed->setDelSp($delsp);
91:         }
92: 
93:         return $flowed->toFixed();
94:     }
95: 
96: }
97: 
API documentation generated by ApiGen