From ffc07b7f48a4b1831aae9c7d06389db7f932df08 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Mon, 13 Jul 2009 15:11:27 -0600 Subject: [PATCH] Better error handling for Mime Viewer rendering --- framework/Mime/lib/Horde/Mime/Viewer/Driver.php | 24 +++++++++++++++++++++--- framework/Mime/lib/Horde/Mime/Viewer/Ooo.php | 1 + framework/Mime/lib/Horde/Mime/Viewer/Rar.php | 1 + framework/Mime/lib/Horde/Mime/Viewer/Tgz.php | 1 + framework/Mime/lib/Horde/Mime/Viewer/Zip.php | 3 +++ framework/Mime/package.xml | 6 +++++- 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/framework/Mime/lib/Horde/Mime/Viewer/Driver.php b/framework/Mime/lib/Horde/Mime/Viewer/Driver.php index 1cc2ebad0..5ab5ab17a 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/Driver.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/Driver.php @@ -123,20 +123,36 @@ class Horde_Mime_Viewer_Driver { switch ($mode) { case 'full': - return $this->_render(); + try { + return $this->_render(); + } catch (Horde_Exception $e) { + $error = $e; + } + break; case 'inline': - return $this->_renderInline(); + try { + return $this->_renderInline(); + } catch (Horde_Exception $e) { + $error = $e; + } case 'info': - return $this->_renderInfo(); + try { + return $this->_renderInfo(); + } 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() { @@ -150,6 +166,7 @@ class Horde_Mime_Viewer_Driver * 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() { @@ -163,6 +180,7 @@ class Horde_Mime_Viewer_Driver * Return the rendered information about the Horde_Mime_Part object. * * @return array See Horde_Mime_Viewer_Driver::render(). + * @throws Horde_Exception */ protected function _renderInfo() { diff --git a/framework/Mime/lib/Horde/Mime/Viewer/Ooo.php b/framework/Mime/lib/Horde/Mime/Viewer/Ooo.php index fb9a4ba61..c55b9fa8e 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/Ooo.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/Ooo.php @@ -31,6 +31,7 @@ class Horde_Mime_Viewer_Ooo extends Horde_Mime_Viewer_Driver * 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() { diff --git a/framework/Mime/lib/Horde/Mime/Viewer/Rar.php b/framework/Mime/lib/Horde/Mime/Viewer/Rar.php index 2c8c569ec..1aef5aaa7 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/Rar.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/Rar.php @@ -46,6 +46,7 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver * 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() { diff --git a/framework/Mime/lib/Horde/Mime/Viewer/Tgz.php b/framework/Mime/lib/Horde/Mime/Viewer/Tgz.php index 901b9164f..e6c35121e 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/Tgz.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/Tgz.php @@ -39,6 +39,7 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver * 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() { diff --git a/framework/Mime/lib/Horde/Mime/Viewer/Zip.php b/framework/Mime/lib/Horde/Mime/Viewer/Zip.php index bf9354008..fad2e6f10 100644 --- a/framework/Mime/lib/Horde/Mime/Viewer/Zip.php +++ b/framework/Mime/lib/Horde/Mime/Viewer/Zip.php @@ -38,6 +38,7 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver * 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() { @@ -53,6 +54,7 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver * 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() { @@ -63,6 +65,7 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver * Converts the ZIP file to an HTML display. * * @return array See Horde_Mime_Viewer_Driver::render(). + * @throws Horde_Exception */ protected function _toHTML() { diff --git a/framework/Mime/package.xml b/framework/Mime/package.xml index 76e009ea1..d6cbddabe 100644 --- a/framework/Mime/package.xml +++ b/framework/Mime/package.xml @@ -152,7 +152,11 @@ http://pear.php.net/dtd/package-2.0.xsd"> 1.5.4 - Horde_Framework + Core + pear.horde.org + + + Exception pear.horde.org -- 2.11.0