* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Audio extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Audio extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_mimepart->getContents(),
- 'status' => array(),
- 'type' => $this->_mimepart->getType()
- )
- );
+ return $this->_renderReturn();
}
}
--- /dev/null
+<?php
+/**
+ * The Horde_Mime_Viewer_Base:: class provides the API for specific viewer
+ * drivers to extend.
+ *
+ * Copyright 2008-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author Michael Slusarz <slusarz@horde.org>
+ * @category Horde
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @package Mime_Viewer
+ */
+class Horde_Mime_Viewer_Base
+{
+ /**
+ * Viewer configuration.
+ *
+ * @var array
+ */
+ protected $_conf = array();
+
+ /**
+ * The Horde_Mime_Part object to render.
+ *
+ * @var Horde_Mime_Part
+ */
+ protected $_mimepart = null;
+
+ /**
+ * Viewer parameters.
+ *
+ * @var array
+ */
+ protected $_params = array();
+
+ /**
+ * This driver's display capabilities.
+ *
+ * @var array
+ */
+ protected $_capability = array(
+ 'full' => false,
+ 'info' => false,
+ 'inline' => false,
+ 'raw' => false
+ );
+
+ /**
+ * Metadata for the current viewer/data.
+ *
+ * @var array
+ */
+ protected $_metadata = array(
+ // Is the part *data* compressed (not the rendered data)?
+ 'compressed' => false,
+ // Does this part contain emebedded MIME data?
+ 'embedded' => false,
+ // Force inline display of this part?
+ 'forceinline' => false
+ );
+
+ /**
+ * Constructor.
+ *
+ * @param Horde_Mime_Part $mime_part The object with the data to be
+ * rendered.
+ * @param array $conf Configuration specific to the
+ * driver.
+ */
+ public function __construct(Horde_Mime_Part $mime_part,
+ array $conf = array())
+ {
+ $this->_mimepart = $mime_part;
+ $this->_conf = $conf;
+ }
+
+ /**
+ * Sets the Horde_Mime_Part object for the class.
+ *
+ * @param Horde_Mime_Part $mime_part The object with the data to be
+ * rendered.
+ */
+ public function setMimePart(Horde_Mime_Part $mime_part)
+ {
+ $this->_mimepart = $mime_part;
+ }
+
+ /**
+ * Set parameters for use with this object.
+ *
+ * @param array $params An array of params to add to the internal
+ * params list.
+ */
+ public function setParams(array $params = array())
+ {
+ $this->_params = array_merge($this->_params, $params);
+ }
+
+ /**
+ * Return the rendered version of the Horde_Mime_Part object.
+ *
+ * @param string $mode The mode:
+ * <pre>
+ * 'full' - A full representation of the MIME part, for use in a view
+ * where the output to the browser can be set to the value
+ * returned in 'type'. This mode should only return a single
+ * MIME ID entry for viewing and should not return any status
+ * information.
+ * 'inline' - A representation of the MIME part that can be viewed inline
+ * on a text/html page that may contain other HTML elements.
+ * 'info' - A representation of the MIME part that can be viewed inline
+ * on an text/html page that may contain other HTML elements.
+ * This view is not a full view, but rather a condensed view of
+ * the contents of the MIME part. This view is intended to be
+ * displayed to the user with the intention that this MIME part's
+ * subparts may also independently be viewed inline.
+ * 'raw' - The raw data of the MIME part, generally useful for downloading
+ * a part. This view exists in case this raw data needs to be
+ * altered in any way.
+ * </pre>
+ *
+ * @return array An array. The keys are the MIME parts that were handled
+ * by the driver. The values are either null (which
+ * indicates the driver is recommending that this
+ * particular MIME ID should not be displayed) or an array
+ * with the following keys:
+ * <pre>
+ * 'data' - (string) The rendered data.
+ * 'status' - (array) An array of status information to be displayed to
+ * the user. Consists of arrays with the following keys:
+ * 'class' - (string) The class to use for display.
+ * 'img' - (string) An image to display.
+ * 'text' - (array) The text to display.
+ * 'type' - (string) The MIME type of the rendered data.
+ * </pre>
+ */
+ public function render($mode)
+ {
+ switch ($mode) {
+ case 'full':
+ try {
+ return $this->_render();
+ } catch (Horde_Exception $e) {
+ $error = $e;
+ }
+ break;
+
+ case 'inline':
+ try {
+ return $this->_renderInline();
+ } catch (Horde_Exception $e) {
+ $error = $e;
+ }
+
+ case 'info':
+ try {
+ return $this->_renderInfo();
+ } catch (Horde_Exception $e) {
+ $error = $e;
+ }
+
+ case 'raw':
+ try {
+ return $this->_renderRaw();
+ } catch (Horde_Exception $e) {
+ $error = $e;
+ }
+ }
+
+ // TODO: Error handling
+ }
+
+ /**
+ * Return the full rendered version of the Horde_Mime_Part object.
+ *
+ * @return array See render().
+ * @throws Horde_Exception
+ */
+ protected function _render()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->render('full')
+ : array();
+ }
+
+ /**
+ * Return the rendered inline version of the Horde_Mime_Part object.
+ *
+ * @return array See render().
+ * @throws Horde_Exception
+ */
+ protected function _renderInline()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->render('inline')
+ : array();
+ }
+
+ /**
+ * Return the rendered information about the Horde_Mime_Part object.
+ *
+ * @return array See render().
+ * @throws Horde_Exception
+ */
+ protected function _renderInfo()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->render('info')
+ : array();
+ }
+
+ /**
+ * Return the rendered information about the Horde_Mime_Part object.
+ *
+ * @return array See render().
+ * @throws Horde_Exception
+ */
+ protected function _renderRaw()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->render('raw')
+ : array();
+ }
+
+ /**
+ * Can this driver render the the data?
+ *
+ * @param string $mode The mode. Either 'full', 'inline', 'info', or
+ * 'raw'.
+ *
+ * @return boolean True if the driver can render the data for the given
+ * view.
+ */
+ public function canRender($mode)
+ {
+ $viewer = $this->_getViewer();
+ if ($viewer) {
+ return $viewer->canRender($mode);
+ }
+
+ switch ($mode) {
+ case 'full':
+ case 'info':
+ case 'raw':
+ return $this->_capability[$mode];
+
+ case 'inline':
+ return $this->getConfigParam('inline') &&
+ ($this->_metadata['forceinline'] ||
+ ($this->_capability['inline'] &&
+ ($this->_mimepart->getDisposition() != 'attachment')));
+
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Does this MIME part possibly contain embedded MIME parts?
+ *
+ * @return boolean True if this driver supports parsing embedded MIME
+ * parts.
+ */
+ public function embeddedMimeParts()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->embeddedMimeParts()
+ : $this->_metadata['embedded'];
+ }
+
+ /**
+ * If this MIME part can contain embedded MIME part(s), and those part(s)
+ * exist, return a representation of that data.
+ *
+ * @return mixed A Horde_Mime_Part object representing the embedded data.
+ * Returns null if no embedded MIME part(s) exist.
+ */
+ public function getEmbeddedMimeParts()
+ {
+ $viewer = $this->_getViewer();
+ return $viewer
+ ? $viewer->getEmbeddedMimeParts()
+ : $this->_getEmbeddedMimeParts();
+ }
+
+ /**
+ * If this MIME part can contain embedded MIME part(s), and those part(s)
+ * exist, return a representation of that data.
+ *
+ * @return mixed A Horde_Mime_Part object representing the embedded data.
+ * Returns null if no embedded MIME part(s) exist.
+ */
+ protected function _getEmbeddedMimeParts()
+ {
+ return null;
+ }
+
+ /**
+ * Return a configuration parameter for the current viewer.
+ *
+ * @param string $param The parameter name.
+ *
+ * @return mixed The value of the parameter; returns null if the
+ * parameter doesn't exist.
+ */
+ public function getConfigParam($param)
+ {
+ return isset($this->_conf[$param]) ? $this->_conf[$param] : null;
+ }
+
+ /**
+ * Returns the driver name for the current object.
+ *
+ * @return string The driver name.
+ */
+ public function getDriver()
+ {
+ return $this->_conf['_driver'];
+ }
+
+ /**
+ * Returns metadata information on the viewer/data.
+ *
+ * @param string $data The metadata key.
+ *
+ * @return mixed The requested information, or null if the key doesn't
+ * exist.
+ */
+ public function getMetadata($data)
+ {
+ return isset($this->_metadata[$data])
+ ? $this->_metadata[$data]
+ : null;
+ }
+
+ /**
+ * Return the underlying MIME Viewer for this part.
+ *
+ * @return mixed A Horde_Mime_Viewer object, or false if not found.
+ */
+ protected function _getViewer()
+ {
+ return false;
+ }
+
+ /**
+ * Internal helper function to create render data array for a MIME Part
+ * object that only has a single part.
+ *
+ * @param string $data The rendered data.
+ * @param string $type The rendered type.
+ *
+ * @return array See render().
+ */
+ protected function _renderReturn($data = null, $type = null)
+ {
+ return array(
+ $this->_mimepart->getMimeId() => array(
+ 'data' => (is_null($data) ? $this->_mimepart->getContents() : $data),
+ 'status' => array(),
+ 'type' => (is_null($type) ? $this->_mimepart->getType() : $type)
+ )
+ );
+ }
+
+ /**
+ * Internal helper function to add base HTML tags to a render() return
+ * array that contains a single MIME part.
+ *
+ * @param array $data See render().
+ *
+ * @return array See render().
+ */
+ protected function _renderFullReturn($data)
+ {
+ if (!empty($data)) {
+ reset($data);
+ $data[key($data)]['data'] = '<html><body>' .
+ $data[key($data)]['data'] .
+ '</body></html>';
+ }
+
+ return $data;
+ }
+
+}
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
$css = preg_replace_callback('!(}|\*/).*?({|/\*)!s', array($this, '_handles'), htmlspecialchars($this->_mimepart->getContents(), ENT_NOQUOTES));
$css = preg_replace_callback('!{[^}]*}!s', array($this, '_attributes'), $css);
$css = preg_replace_callback('!/\*.*?\*/!s', array($this, '_comments'), $css);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_lineNumber(trim($css)),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+
+ return $this->_renderReturn(
+ $this->_lineNumber(trim($css)),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
{
return preg_replace(array_keys($this->_handlesPatterns), array_values($this->_handlesPatterns), $matches[0]);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- $ret = $this->_renderInfo();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_renderInfo());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
return array();
}
- $tmp_deb = Horde::getTempFile('horde_deb');
+ $data = '';
+ $tmpin = Horde::getTempFile('horde_deb');
file_put_contents($tmp_deb, $this->_mimepart->getContents());
- $fh = popen($this->_conf['location'] . " -f $tmp_deb 2>&1", 'r');
- while (($rc = fgets($fh, 8192))) {
+ $fh = popen($this->_conf['location'] . " -f $tmpin 2>&1", 'r');
+ while ($rc = fgets($fh, 8192)) {
$data .= $rc;
}
pclose($fh);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => '<pre>' . htmlspecialchars($data) . '</pre>',
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ '<pre>' . htmlspecialchars($data) . '</pre>',
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Default extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Default extends Horde_Mime_Viewer_Base
{
}
+++ /dev/null
-<?php
-/**
- * The Horde_Mime_Viewer_Driver:: class provides the API for specific viewer
- * drivers to extend.
- *
- * Copyright 2008-2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author Michael Slusarz <slusarz@horde.org>
- * @category Horde
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @package Mime_Viewer
- */
-class Horde_Mime_Viewer_Driver
-{
- /**
- * Viewer configuration.
- *
- * @var array
- */
- protected $_conf = array();
-
- /**
- * The Horde_Mime_Part object to render.
- *
- * @var Horde_Mime_Part
- */
- protected $_mimepart = null;
-
- /**
- * Viewer parameters.
- *
- * @var array
- */
- protected $_params = array();
-
- /**
- * This driver's display capabilities.
- *
- * @var array
- */
- protected $_capability = array(
- 'full' => false,
- 'info' => false,
- 'inline' => false,
- 'raw' => false
- );
-
- /**
- * Metadata for the current viewer/data.
- *
- * @var array
- */
- protected $_metadata = array(
- // Is the part *data* compressed (not the rendered data)?
- 'compressed' => false,
- // Does this part contain emebedded MIME data?
- 'embedded' => false,
- // Force inline display of this part?
- 'forceinline' => false
- );
-
- /**
- * Constructor.
- *
- * @param Horde_Mime_Part $mime_part Reference to an object with the
- * information to be rendered.
- * @param array $conf Configuration specific to the
- * driver.
- */
- public function __construct($mime_part, $conf = array())
- {
- $this->_mimepart = $mime_part;
- $this->_conf = $conf;
- }
-
- /**
- * Sets the Horde_Mime_Part object for the class.
- *
- * @param Horde_Mime_Part $mime_part The object with the information to
- * be rendered.
- */
- public function setMIMEPart($mime_part)
- {
- $this->_mimepart = $mime_part;
- }
-
- /**
- * Set parameters for use with this object.
- *
- * @param array $params An array of params to add to the internal
- * params list.
- */
- public function setParams($params = array())
- {
- $this->_params = array_merge($this->_params, $params);
- }
-
- /**
- * Return the rendered version of the Horde_Mime_Part object.
- *
- * @param string $mode The mode:
- * <pre>
- * 'full' - A full representation of the MIME part, for use in a view
- * where the output to the browser can be set to the value
- * returned in 'type'. This mode should only return a single
- * MIME ID entry for viewing and should not return any status
- * information.
- * 'inline' - A representation of the MIME part that can be viewed inline
- * on a text/html page that may contain other HTML elements.
- * 'info' - A representation of the MIME part that can be viewed inline
- * on an text/html page that may contain other HTML elements.
- * This view is not a full view, but rather a condensed view of
- * the contents of the MIME part. This view is intended to be
- * displayed to the user with the intention that this MIME part's
- * subparts may also independently be viewed inline.
- * 'raw' - The raw data of the MIME part, generally useful for downloading
- * a part. This view exists in case this raw data needs to be
- * altered in any way.
- * </pre>
- *
- * @return array An array. The keys are the MIME parts that were handled
- * by the driver. The values are either null (which
- * indicates the driver is recommending that this
- * particular MIME ID should not be displayed) or an array
- * with the following keys:
- * <pre>
- * 'data' - (string) The rendered data.
- * 'status' - (array) An array of status information to be displayed to
- * the user. Consists of arrays with the following keys:
- * 'class' - (string) The class to use for display.
- * 'img' - (string) An image to display.
- * 'text' - (array) The text to display.
- * 'type' - (string) The MIME type of the rendered data.
- * </pre>
- */
- public function render($mode)
- {
- switch ($mode) {
- case 'full':
- try {
- return $this->_render();
- } catch (Horde_Exception $e) {
- $error = $e;
- }
- break;
-
- case 'inline':
- try {
- return $this->_renderInline();
- } catch (Horde_Exception $e) {
- $error = $e;
- }
-
- case 'info':
- try {
- return $this->_renderInfo();
- } catch (Horde_Exception $e) {
- $error = $e;
- }
-
- case 'raw':
- try {
- return $this->_renderRaw();
- } catch (Horde_Exception $e) {
- $error = $e;
- }
- }
-
- // TODO: Error handling
- }
-
- /**
- * Return the full rendered version of the Horde_Mime_Part object.
- *
- * @return array See Horde_Mime_Viewer_Driver::render().
- * @throws Horde_Exception
- */
- protected function _render()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->render('full')
- : array();
- }
-
- /**
- * Return the rendered inline version of the Horde_Mime_Part object.
- *
- * @return array See Horde_Mime_Viewer_Driver::render().
- * @throws Horde_Exception
- */
- protected function _renderInline()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->render('inline')
- : array();
- }
-
- /**
- * Return the rendered information about the Horde_Mime_Part object.
- *
- * @return array See Horde_Mime_Viewer_Driver::render().
- * @throws Horde_Exception
- */
- protected function _renderInfo()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->render('info')
- : array();
- }
-
- /**
- * Return the rendered information about the Horde_Mime_Part object.
- *
- * @return array See Horde_Mime_Viewer_Driver::render().
- * @throws Horde_Exception
- */
- protected function _renderRaw()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->render('raw')
- : array();
- }
-
- /**
- * Can this driver render the the data?
- *
- * @param string $mode The mode. Either 'full', 'inline', 'info', or
- * 'raw'.
- *
- * @return boolean True if the driver can render the data for the given
- * view.
- */
- public function canRender($mode)
- {
- $viewer = $this->_getViewer();
- if ($viewer) {
- return $viewer->canRender($mode);
- }
-
- switch ($mode) {
- case 'full':
- case 'info':
- case 'raw':
- return $this->_capability[$mode];
-
- case 'inline':
- return $this->getConfigParam('inline') &&
- ($this->_metadata['forceinline'] ||
- ($this->_capability['inline'] &&
- ($this->_mimepart->getDisposition() != 'attachment')));
-
- default:
- return false;
- }
- }
-
- /**
- * Does this MIME part possibly contain embedded MIME parts?
- *
- * @return boolean True if this driver supports parsing embedded MIME
- * parts.
- */
- public function embeddedMimeParts()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->embeddedMimeParts()
- : $this->_metadata['embedded'];
- }
-
- /**
- * If this MIME part can contain embedded MIME part(s), and those part(s)
- * exist, return a representation of that data.
- *
- * @return mixed A Horde_Mime_Part object representing the embedded data.
- * Returns null if no embedded MIME part(s) exist.
- */
- public function getEmbeddedMimeParts()
- {
- $viewer = $this->_getViewer();
- return $viewer
- ? $viewer->getEmbeddedMimeParts()
- : $this->_getEmbeddedMimeParts();
- }
-
- /**
- * If this MIME part can contain embedded MIME part(s), and those part(s)
- * exist, return a representation of that data.
- *
- * @return mixed A Horde_Mime_Part object representing the embedded data.
- * Returns null if no embedded MIME part(s) exist.
- */
- protected function _getEmbeddedMimeParts()
- {
- return null;
- }
-
- /**
- * Return a configuration parameter for the current viewer.
- *
- * @param string $param The parameter name.
- *
- * @return mixed The value of the parameter; returns null if the
- * parameter doesn't exist.
- */
- public function getConfigParam($param)
- {
- return isset($this->_conf[$param]) ? $this->_conf[$param] : null;
- }
-
- /**
- * Returns the driver name for the current object.
- *
- * @return string The driver name.
- */
- public function getDriver()
- {
- return $this->_conf['_driver'];
- }
-
- /**
- * Returns metadata information on the viewer/data.
- *
- * @param string $data The metadata key.
- *
- * @return mixed The requested information, or null if the key doesn't
- * exist.
- */
- public function getMetadata($data)
- {
- return isset($this->_metadata[$data])
- ? $this->_metadata[$data]
- : null;
- }
-
- /**
- * Return the underlying MIME Viewer for this part.
- *
- * @return mixed A Horde_Mime_Viewer object, or false if not found.
- */
- protected function _getViewer()
- {
- return false;
- }
-
-}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Enriched extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Enriched extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => '<html><body>' . $this->_toHTML(false) . '</body></html>',
- 'status' => array(),
- 'type' => 'text/html; charset=' . $this->_mimepart->getCharset()
- )
+ return $this->_renderReturn(
+ '<html><body>' . $this->_toHTML(false) . '</body></html>',
+ 'text/html; charset=' . $this->_mimepart->getCharset()
);
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => Horde_String::convertCharset($this->_toHTML(true), $this->_mimepart->getCharset()),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ Horde_String::convertCharset($this->_toHTML(true), $this->_mimepart->getCharset()),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
}
return '<span style="color: #' . $colors[1] . $colors[2] . $colors[3] . '">' . $colors[4] . '</span>';
}
+
}
--- /dev/null
+<?php
+/**
+ * Exception handler for the horde/Mime_Viewer package.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author Michael Slusarz <slusarz@horde.org>
+ * @category Horde
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @package Mime_Viewer
+ */
+class Horde_Mime_Viewer_Exception extends Horde_Exception_Prior
+{
+}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Html extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Html extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
$html = $this->_cleanHTML($this->_mimepart->getContents(), array('inline' => false));
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $html['html'],
- 'status' => array(),
- 'type' => $this->_mimepart->getType(true)
- )
+ return $this->_renderReturn(
+ $html['html'],
+ $this->_mimepart->getType(true)
);
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Images extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Images extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_mimepart->getContents(),
- 'status' => array(),
- 'type' => $this->_getType()
- )
- );
+ return $this->_renderReturn(null, $this->_getType());
}
/**
return $type;
}
}
+
}
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Anil Madhavapeddy <anil@recoil.org>
+ * @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Msexcel extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Msexcel extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
return array();
}
- $tmp_xls = Horde::getTempFile('horde_msexcel');
+ $tmp_in = Horde::getTempFile('horde_msexcel');
$tmp_out = Horde::getTempFile('horde_msexcel');
file_put_contents($tmp_xls, $this->_mimepart->getContents());
- $args = ' -E Gnumeric_Excel:excel_dsf -T Gnumeric_html:html40 ' . $tmp_xls . ' ' . $tmp_out;
+ $args = ' -E Gnumeric_Excel:excel_dsf -T Gnumeric_html:html40 ' . $tmp_in . ' ' . $tmp_out;
exec($this->_conf['location'] . $args);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => file_get_contents($tmp_out),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_returnRender(
+ file_get_contents($tmp_out),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Mspowerpoint extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Mspowerpoint extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
}
$data = '';
- $tmp_ppt = Horde::getTempFile('horde_mspowerpoint');
+ $tmp_ppt = Horde::getTempFile('horde_mspowerpoint');
file_put_contents($tmp_ppt, $this->_mimepart->getContents());
$fh = popen($this->_conf['location'] . " $tmp_ppt 2>&1", 'r');
}
pclose($fh);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_returnRender(
+ $data,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Anil Madhavapeddy <anil@recoil.org>
+ * @author Michael Slusarz <slusarz@curecanti.org>
* @category Horde
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Msword extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Msword extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
return array();
}
- $tmp_word = Horde::getTempFile('msword');
- $tmp_output = Horde::getTempFile('msword');
- $tmp_file = str_replace(Horde::getTempDir() . '/', '', $tmp_output);
+ $tmp_in = Horde::getTempFile('msword');
+ $tmp_out = Horde::getTempFile('msword');
- file_put_contents($tmp_word, $this->_mimepart->getContents());
- $args = ' --to=html --to-name=' . $tmp_output . ' ' . $tmp_word;
+ file_put_contents($tmp_in, $this->_mimepart->getContents());
+ $args = ' --to=html --to-name=' . $tmp_out . ' ' . $tmp_in;
exec($this->_conf['location'] . $args);
$type = 'text/plain';
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => $type . '; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $data,
+ $type . '; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Ooo extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Ooo extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Pdf extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Pdf extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_mimepart->getContents(),
- 'status' => array(),
- 'type' => 'application/pdf'
- )
- );
+ return $this->_renderReturn(null, 'application/pdf');
}
+
}
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- $ret = $this->_renderInline();
-
- // Need Horde headers for CSS tags.
- reset($ret);
- Horde::startBuffer();
- require $GLOBALS['registry']->get('templates', 'horde') . '/common-header.inc';
- echo $ret[key($ret)]['data'];
- require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc';
- $ret[key($ret)]['data'] = Horde::endBuffer();
-
- return $ret;
+ return $this->_renderFullReturn($this->_renderInline());
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
$code = $this->_mimepart->getContents();
- if (strpos($code, '<?php') === false) {
- $text = str_replace('<?php ', '', highlight_string('<?php ' . $code, true));
- } else {
- $text = highlight_string($code, true);
- }
- $text = trim(str_replace(array("\n", '<br />'), array('', "\n"), $text));
- $text = $this->_lineNumber($text);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $text,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ $text = (strpos($code, '<?php') === false)
+ ? str_replace('<?php ', '', highlight_string('<?php ' . $code, true))
+ : highlight_string($code, true);
+
+ return $this->_renderReturn(
+ $this->_lineNumber(trim(str_replace(array("\n", '<br />'), array('', "\n"), $text))),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Plain extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Plain extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
$text = $this->_formatFlowed($text, $this->_mimepart->getContentTypeParameter('delsp'));
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => '<html><body><tt>' . Horde_Text_Filter::filter($text, 'text2html', array(
- 'charset' => $charset,
- 'parselevel' => Horde_Text_Filter_Text2html::MICRO_LINKURL
- )) . '</tt></body></html>',
- 'status' => array(),
- 'type' => 'text/html; charset=' . $charset
- )
+ $text = '<html><body><tt>' . Horde_Text_Filter::filter($text, 'text2html', array(
+ 'charset' => $charset,
+ 'parselevel' => Horde_Text_Filter_Text2html::MICRO_LINKURL
+ )) . '</tt></body></html>';
+
+ return $this->_renderReturn(
+ $text,
+ 'text/html; charset=' . $charset
);
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
? $this->_formatFlowed($text, $this->_mimepart->getContentTypeParameter('delsp'))
: $text;
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $data,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
if (!is_null($delsp)) {
$flowed->setDelSp($delsp);
}
+
return $flowed->toFixed();
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- $ret = $this->_renderInfo();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_renderInfo());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _renderInfo()
) . "\n";
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $charset
- )
+ return $this->_renderReturn(
+ nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
+ 'text/html; charset=' . $charset
);
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Report extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Report extends Horde_Mime_Viewer_Base
{
/**
* Return the underlying MIME Viewer for this part.
return $viewer;
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Rfc822 extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Rfc822 extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_mimepart->getContents(),
- 'status' => array(),
- 'type' => 'text/plain; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ null,
+ 'text/plain; charset=' . $GLOBALS['registry']->getCharset()
);
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
}
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => empty($header_output) ? '' : ('<div class="fixed mimeHeaders">' . Horde_Text_Filter::filter(implode("<br />\n", $header_output), 'emails') . '</div>'),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ (empty($header_output) ? '' : ('<div class="fixed mimeHeaders">' . Horde_Text_Filter::filter(implode("<br />\n", $header_output), 'emails') . '</div>')),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Richtext extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Richtext extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_toHTML(),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $this->_mimepart->getCharset()
- )
- );
+ return $this->_renderFullReturn($this->_renderReturn(
+ $this->_toHTML(),
+ 'text/html; charset=' . $this->_mimepart->getCharset()
+
+ ));
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => Horde_String::convertCharset($this->_toHTML(), $this->_mimepart->getCharset()),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ Horde_String::convertCharset($this->_toHTML(), $this->_mimepart->getCharset()),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
return '<p style="font-size:100%;font-family:Lucida Console,Courier,Courier New;">' . nl2br($text) . '</p>';
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- $ret = $this->_renderInfo();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_renderInfo());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
}
$data = '';
- $tmp_rpm = Horde::getTempFile('horde_rpm');
+ $tmp_rpm = Horde::getTempFile('horde_rpm');
file_put_contents($tmp_rpm, $this->_mimepart->getContents());
$fh = popen($this->_conf['location'] . " -qip $tmp_rpm 2>&1", 'r');
}
pclose($fh);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => '<pre>' . htmlentities($data) . '</pre>',
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_returnRender(
+ '<pre>' . htmlspecialchars($data) . '</pre>',
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Rtf extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Rtf extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
exec($this->_conf['location'] . " $tmp_rtf > $tmp_output");
- if (file_exists($tmp_output)) {
- $data = file_get_contents($tmp_output);
- } else {
- $data = _("Unable to translate this RTF document");
- }
+ $data = file_exists($tmp_output)
+ ? file_get_contents($tmp_output)
+ : _("Unable to translate this RTF document");
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $data,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Security extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Security extends Horde_Mime_Viewer_Base
{
/**
* Return the underlying MIME Viewer for this part.
if ($viewer) {
$viewer->setParams($this->_params);
}
+
return $viewer;
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Simple extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Simple extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_mimepart->getContents(),
- 'status' => array(),
- 'type' => 'text/plain; charset=' . $this->_mimepart->getCharset()
- )
+ return $this->_renderReturn(
+ null,
+ 'text/plain; charset=' . $this->_mimepart->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Smil extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Smil extends Horde_Mime_Viewer_Base
{
/**
* Handle for the XML parser object.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
xml_parse($this->_parser, $this->_mimepart->getContents(), true);
xml_parser_free($this->_parser);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $this->_content,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $this->_content,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
$this->_content .= ' ' . htmlspecialchars($data);
}
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Source extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Source extends Horde_Mime_Viewer_Base
{
/**
* Add line numbers to a block of code.
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Srchighlite extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Srchighlite extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
- $ret = $this->_renderInline();
-
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' .
- $ret[key($ret)]['data'] .
- '</body></html>';
-
- return $ret;
+ return $this->_renderFullReturn($this->_renderInline());
}
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/* Create temporary files for Webcpp. */
$tmpin = Horde::getTempFile('SrcIn');
- $tmpout = Horde::getTempFile('SrcOut', false);
+ $tmpout = Horde::getTempFile('SrcOut');
/* Write the contents of our buffer to the temporary input file. */
file_put_contents($tmpin, $this->_mimepart->getContents());
$results = file_get_contents($tmpout);
unlink($tmpout);
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $results,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $results,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
* The Horde_Mime_Viewer_Tgz class renders out plain or gzipped tarballs in
* HTML.
*
+ * Copyright 1999-2010 The Horde Project (http://www.horde.org/)
+ *
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
{
- $ret = $this->_renderInfo();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] .
- '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_renderInfo());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _renderInfo()
) . "\n";
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $charset
- )
+ return $this->_renderReturn(
+ nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
+ 'text/html; charset=' . $charset
);
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
{
- $ret = $this->_renderInfo();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_renderInfo());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _renderInfo()
}
$data .= '</table>';
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $data,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Vcard extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Vcard extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
Horde::startBuffer();
$notification->notify(array('listeners' => 'status'));
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => Horde::endBuffer() . $html,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ Horde::endBuffer() . $html,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
'</td><td class="item" valign="top">' . nl2br($value) .
"</td></tr>\n";
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Wordperfect extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Wordperfect extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
exec($this->_conf['location'] . " $tmp_wpd > $tmp_output");
- if (file_exists($tmp_output)) {
- $data = file_get_contents($tmp_output);
- } else {
- $data = _("Unable to translate this WordPerfect document");
- }
+ $data = file_exists($tmp_output)
+ ? file_get_contents($tmp_output)
+ : _("Unable to translate this WordPerfect document");
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => $data,
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ $data,
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @package Mime_Viewer
*/
-class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver
+class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
{
- $ret = $this->_toHTML();
- if (!empty($ret)) {
- reset($ret);
- $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
- }
- return $ret;
+ return $this->_renderFullReturn($this->_toHTML());
}
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _renderInfo()
/**
* Converts the ZIP file to an HTML display.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _toHTML()
"\n";
}
- return array(
- $this->_mimepart->getMimeId() => array(
- 'data' => nl2br($text . str_repeat('-', 59 + $maxlen) . "\n</span></td></tr></table>"),
- 'status' => array(),
- 'type' => 'text/html; charset=' . $GLOBALS['registry']->getCharset()
- )
+ return $this->_renderReturn(
+ nl2br($text . str_repeat('-', 59 + $maxlen) . "\n</span></td></tr></table>"),
+ 'text/html; charset=' . $GLOBALS['registry']->getCharset()
);
}
+
}
<file name="table_rows.xsl" role="php" />
</dir> <!-- /lib/Horde/Mime/Viewer/Ooo -->
<file name="Audio.php" role="php" />
+ <file name="Base.php" role="php" />
<file name="Css.php" role="php" />
<file name="Deb.php" role="php" />
<file name="Default.php" role="php" />
- <file name="Driver.php" role="php" />
<file name="Enriched.php" role="php" />
<file name="Exception.php" role="php" />
<file name="Html.php" role="php" />
<install name="lib/Horde/Mime/Viewer/Ooo/table_columns.xsl" as="Horde/Mime/Viewer/Ooo/table_columns.xsl" />
<install name="lib/Horde/Mime/Viewer/Ooo/table_rows.xsl" as="Horde/Mime/Viewer/Ooo/table_rows.xsl" />
<install name="lib/Horde/Mime/Viewer/Audio.php" as="Horde/Mime/Viewer/Audio.php" />
+ <install name="lib/Horde/Mime/Viewer/Base.php" as="Horde/Mime/Viewer/Base.php" />
<install name="lib/Horde/Mime/Viewer/Css.php" as="Horde/Mime/Viewer/Css.php" />
<install name="lib/Horde/Mime/Viewer/Deb.php" as="Horde/Mime/Viewer/Deb.php" />
<install name="lib/Horde/Mime/Viewer/Default.php" as="Horde/Mime/Viewer/Default.php" />
- <install name="lib/Horde/Mime/Viewer/Driver.php" as="Horde/Mime/Viewer/Driver.php" />
<install name="lib/Horde/Mime/Viewer/Enriched.php" as="Horde/Mime/Viewer/Enriched.php" />
<install name="lib/Horde/Mime/Viewer/Exception.php" as="Horde/Mime/Viewer/Exception.php" />
<install name="lib/Horde/Mime/Viewer/Html.php" as="Horde/Mime/Viewer/Html.php" />
* TODO
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
* identified in the MIME part.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render(). The following
+ * @return array See Horde_Mime_Viewer_Base::render(). The following
* fields may also be present in addition to the fields
- * defined in Horde_Mime_Viewer_Driver:
+ * defined in Horde_Mime_Viewer_Base:
* 'attach' - (boolean) Force display of this part as an
* attachment.
* 'js' - (array) A list of javascript commands to run
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Alternative extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Alternative extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
* @param boolean $prefer_plain For MIMP, prefer text/plain part over
* all others.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _IMPrender($inline, $prefer_plain = true)
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Appledouble extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Appledouble extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
*
* @param boolean $inline True if viewing inline.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _IMPrender($inline)
{
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
// Filter bad language.
return IMP::filterText($text);
}
+
}
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* 'view_thumbnail' - TODO
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Itip extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Itip extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
* 'itip_action' - (array) TODO
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline($full = false)
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Mdn extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Mdn extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Partial extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Partial extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* 'pdf_view_thumbnail' - (boolean) Output the thumbnail info.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Pgp extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Pgp extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderRaw()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Can this driver render the the data?
*
- * @param string $mode See Horde_Mime_Viewer_Driver::canRender().
+ * @param string $mode See parent::canRender().
*
- * @return boolean See Horde_Mime_Viewer_Driver::canRender().
+ * @return boolean See parent::canRender().
*/
public function canRender($mode)
{
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
*
* @param boolean $inline Viewing inline?
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _impRender($inline)
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Related extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Related extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Smime extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Smime extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
* @license http://www.fsf.org/copyleft/gpl.html GPL
* @package IMP
*/
-class IMP_Horde_Mime_Viewer_Status extends Horde_Mime_Viewer_Driver
+class IMP_Horde_Mime_Viewer_Status extends Horde_Mime_Viewer_Base
{
/**
* This driver's display capabilities.
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInline()
{
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{
* 'tnef_attachment' - (integer) The TNEF attachment to download.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
/**
* Return the rendered information about the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _renderInfo()
* 'p' - (integer) The index of image inside the component to display.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
* 'zip_attachment' - (integer) The ZIP attachment to download.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
* @throws Horde_Exception
*/
protected function _render()
* 'zip_attachment' - (integer) The ZIP attachment to download.
* </pre>
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _render()
{
/**
* Return the rendered inline version of the Horde_Mime_Part object.
*
- * @return array See Horde_Mime_Viewer_Driver::render().
+ * @return array See parent::render().
*/
protected function _renderInfo()
{