From a579899074fcd032e5e54e639049ffc7b274a4ff Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 12 Nov 2008 13:58:51 -0700 Subject: [PATCH] Update report Viewer. --- framework/Mime/lib/Horde/Mime/Viewer/report.php | 80 ++++++++++--------------- 1 file changed, 31 insertions(+), 49 deletions(-) diff --git a/framework/Mime/lib/Horde/Mime/Viewer/report.php b/framework/Mime/lib/Horde/Mime/Viewer/report.php index e0ee24621..85c6956be 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/report.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/report.php @@ -14,76 +14,58 @@ class Horde_Mime_Viewer_report extends Horde_Mime_Viewer_Driver { /** - * Stores the Horde_Mime_Viewer of the specified protocol. + * Can this driver render various views? * - * @var Horde_Mime_Viewer + * @var boolean */ - protected $_viewer; + protected $_capability = array( + 'embedded' => false, + 'full' => true, + 'info' => false, + 'inline' => true, + ); /** - * Render the multipart/report data. + * Return the full rendered version of the Horde_Mime_Part object. * - * @param array $params An array of parameters needed. - * - * @return string The rendered data. + * @return array See Horde_Mime_Viewer_Driver::render(). */ - public function render($params = array()) + protected function _render() { - /* Get the appropriate Horde_Mime_Viewer for the protocol specified. */ - if (!($this->_resolveViewer())) { - return; - } - - /* Render using the loaded Horde_Mime_Viewer object. */ - return $this->_viewer->render($params); + return $this->_toHTML(false); } /** - * Returns the content-type of the Viewer used to view the part. + * Return the rendered inline version of the Horde_Mime_Part object. * - * @return string A content-type string. + * @return array See Horde_Mime_Viewer_Driver::render(). */ - public function getType() + protected function _renderInline() { - /* Get the appropriate Horde_Mime_Viewer for the protocol specified. */ - if (!($this->_resolveViewer())) { - return 'application/octet-stream'; - } else { - return $this->_viewer->getType(); - } + return $this->_toHTML(true); } /** - * Load a Horde_Mime_Viewer according to the report-type parameter stored - * in the MIME_Part to render. If unsuccessful, try to load a generic - * multipart Horde_Mime_Viewer. + * Return an HTML rendered version of the part. * - * @return boolean True on success, false on failure. + * @param boolean + * + * @return array See Horde_Mime_Viewer_Driver::render(). */ - protected function _resolveViewer() + protected function _toHTML($inline) { - $type = $viewer = null; - - if (empty($this->_viewer)) { - if (($type = $this->mime_part->getContentTypeParameter('report-type'))) { - $viewer = &Horde_Mime_Viewer::factory($this->mime_part, 'message/' . String::lower($type)); - $type = $this->mime_part->getPrimaryType(); - } else { - /* If report-type is missing, the message is an improper - * multipart/report message. Attempt to fall back to a - * multipart/mixed viewer instead. */ - $type = 'multipart'; - } + if (!($type = $this->_mimepart->getContentTypeParameter('report-type'))) { + return array(); + } - if (empty($viewer) || - (String::lower(get_class($viewer)) == 'mime_viewer_default')) { - if (!($viewer = &Horde_Mime_Viewer::factory($this->mime_part, $type . '/*'))) { - return false; - } - } - $this->_viewer = $viewer; + $viewer = Horde_Mime_Viewer::factory('message/' . String::lower($type)); + if (!$viewer) { + return array(); } + $viewer->setMIMEPart($this->_mimepart); + $viewer->setParams($this->_params); - return true; + /* Render using the loaded Horde_Mime_Viewer object. */ + return $viewer->render($inline ? 'inline' : 'full'); } } -- 2.11.0