Tweaks to compressed viewers.
authorMichael M Slusarz <slusarz@curecanti.org>
Thu, 7 Jan 2010 22:40:45 +0000 (15:40 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Fri, 8 Jan 2010 19:45:46 +0000 (12:45 -0700)
Since we are not rendering the contents of these parts inline, the list
of files contained in the compressed data should be displayed in the
info render view instead.

Additionally, this list should always be viewable in the full render
mode.

framework/Mime/lib/Horde/Mime/Viewer/Deb.php
framework/Mime/lib/Horde/Mime/Viewer/Rar.php
framework/Mime/lib/Horde/Mime/Viewer/Rpm.php
framework/Mime/lib/Horde/Mime/Viewer/Tgz.php
framework/Mime/lib/Horde/Mime/Viewer/Tnef.php
framework/Mime/lib/Horde/Mime/Viewer/Zip.php
imp/lib/Mime/Viewer/Tnef.php
imp/lib/Mime/Viewer/Zip.php

index 9257a32..8d357cb 100644 (file)
@@ -20,8 +20,8 @@ class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
      */
     protected $_capability = array(
         'full' => true,
-        'info' => false,
-        'inline' => true,
+        'info' => true,
+        'inline' => false,
         'raw' => false
     );
 
@@ -33,7 +33,7 @@ class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
@@ -43,7 +43,7 @@ class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
      */
     protected function _render()
     {
-        $ret = $this->_renderInline();
+        $ret = $this->_renderInfo();
         if (!empty($ret)) {
             reset($ret);
             $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
@@ -52,11 +52,11 @@ class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         /* Check to make sure the viewer program exists. */
         if (!isset($this->_conf['location']) ||
index ade0069..48af0f9 100644 (file)
@@ -21,8 +21,8 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
      */
     protected $_capability = array(
         'full' => true,
-        'info' => false,
-        'inline' => true,
+        'info' => true,
+        'inline' => false,
         'raw' => false
     );
 
@@ -34,7 +34,7 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
@@ -44,7 +44,7 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
      */
     protected function _render()
     {
-        $ret = $this->_renderInline();
+        $ret = $this->_renderInfo();
         if (!empty($ret)) {
             reset($ret);
             $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
@@ -53,12 +53,12 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
      * @throws Horde_Exception
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         $contents = $this->_mimepart->getContents();
 
@@ -74,7 +74,7 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
         }
 
         $text = '<strong>' . htmlspecialchars(sprintf(_("Contents of \"%s\""), $name)) . ":</strong>\n" .
-            '<table><tr><td align="left"><span class="fixed">' .
+            '<table><tr><td align="left"><pre>' .
             Horde_Text_Filter::filter(_("Archive Name") . ':  ' . $name, 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) . "\n" .
             Horde_Text_Filter::filter(_("Archive File Size") . ': ' . strlen($contents) . ' bytes', 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) . "\n" .
             Horde_Text_Filter::filter(sprintf(ngettext("File Count: %d file", "File Count: %d files", $fileCount), $fileCount), 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) .
@@ -109,10 +109,11 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
 
         return array(
             $this->_mimepart->getMimeId() => array(
-                'data' => nl2br($text . str_repeat('-', 106) . "\n</span></td></tr></table>"),
+                'data' => nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
                 'status' => array(),
                 'type' => 'text/html; charset=' . $charset
             )
         );
     }
+
 }
index ec12af1..2c59d37 100644 (file)
@@ -20,7 +20,7 @@ class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
      */
     protected $_capability = array(
         'full' => true,
-        'info' => false,
+        'info' => true,
         'inline' => false,
         'raw' => false
     );
@@ -33,7 +33,7 @@ class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
@@ -43,6 +43,21 @@ class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
      */
     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 the rendered information about the Horde_Mime_Part object.
+     *
+     * @return array  See Horde_Mime_Viewer_Driver::render().
+     */
+    protected function _renderInfo()
+    {
         /* Check to make sure the viewer program exists. */
         if (!isset($this->_conf['location']) ||
             !file_exists($this->_conf['location'])) {
@@ -62,10 +77,11 @@ class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
 
         return array(
             $this->_mimepart->getMimeId() => array(
-                'data' => '<html><body><pre>' . htmlentities($data) . '</pre></body></html>',
+                'data' => '<pre>' . htmlentities($data) . '</pre>',
                 'status' => array(),
                 'type' => 'text/html; charset=' . Horde_Nls::getCharset()
             )
         );
     }
+
 }
index 344f1fe..9449bf6 100644 (file)
@@ -18,25 +18,13 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
      * @var array
      */
     protected $_capability = array(
-        'full' => false,
+        'full' => true,
         'info' => true,
-        'inline' => true,
+        'inline' => false,
         'raw' => false
     );
 
     /**
-     * Metadata for the current viewer/data.
-     *
-     * @var array
-     */
-    protected $_metadata = array(
-        // Compression detection handled in constructor.
-        'compressed' => false,
-        'embedded' => false,
-        'forceinline' => true
-    );
-
-    /**
      * The list of compressed subtypes.
      *
      * @var array
@@ -62,12 +50,29 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * 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()
+    {
+        $ret = $this->_renderInfo();
+        if (!empty($ret)) {
+            reset($ret);
+            $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] .
+ '</body></html>';
+        }
+        return $ret;
+    }
+
+    /**
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
      * @throws Horde_Exception
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         /* Currently, can't do anything without tar file. */
         $subtype = $this->_mimepart->getSubType();
@@ -96,7 +101,7 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
         }
 
         $text = '<strong>' . htmlspecialchars(sprintf(_("Contents of \"%s\""), $name)) . ":</strong>\n" .
-            '<table><tr><td align="left"><span class="fixed">' .
+            '<table><tr><td align="left"><pre>' .
             Horde_Text_Filter::filter(_("Archive Name") . ':  ' . $name, 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) . "\n" .
             Horde_Text_Filter::filter(_("Archive File Size") . ': ' . strlen($contents) . ' bytes', 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) . "\n" .
             Horde_Text_Filter::filter(sprintf(ngettext("File Count: %d file", "File Count: %d files", $fileCount), $fileCount), 'space2html', array('charset' => $charset, 'encode' => true, 'encode_all' => true)) .
@@ -124,21 +129,11 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
 
         return array(
             $this->_mimepart->getMimeId() => array(
-                'data' => nl2br($text . str_repeat('-', 106) . "\n</span></td></tr></table>"),
+                'data' => nl2br($text . str_repeat('-', 106) . "\n</pre></td></tr></table>"),
                 'status' => array(),
                 'type' => 'text/html; charset=' . $charset
             )
         );
     }
 
-    /**
-     * Return the rendered information about the Horde_Mime_Part object.
-     *
-     * @return array  See Horde_Mime_Viewer_Driver::render().
-     */
-    protected function _renderInfo()
-    {
-        return $this->_renderInline();
-    }
-
 }
index ac477b7..e94c344 100644 (file)
@@ -21,8 +21,8 @@ class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
      */
     protected $_capability = array(
         'full' => true,
-        'info' => false,
-        'inline' => true,
+        'info' => true,
+        'inline' => false,
         'raw' => false
     );
 
@@ -34,17 +34,18 @@ class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
      * 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()
     {
-        $ret = $this->_renderInline();
+        $ret = $this->_renderInfo();
         if (!empty($ret)) {
             reset($ret);
             $ret[key($ret)]['data'] = '<html><body>' . $ret[key($ret)]['data'] . '</body></html>';
@@ -53,11 +54,12 @@ class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
+     * @throws Horde_Exception
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         $tnef = Horde_Compress::factory('tnef');
         $info = $tnef->decompress($this->_mimepart->getContents());
@@ -81,4 +83,5 @@ class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
             )
         );
     }
+
 }
index 44c2df0..e1fb5f6 100644 (file)
@@ -21,8 +21,8 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver
      */
     protected $_capability = array(
         'full' => true,
-        'info' => false,
-        'inline' => true,
+        'info' => true,
+        'inline' => false,
         'raw' => false
     );
 
@@ -34,7 +34,7 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
@@ -61,12 +61,12 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
      * @throws Horde_Exception
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         return $this->_toHTML();
     }
index 989e67e..d1c6ca9 100644 (file)
@@ -33,7 +33,7 @@ class IMP_Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Tnef
     protected $_metadata = array(
         'compressed' => true,
         'embedded' => false,
-        'forceinline' => true
+        'forceinline' => false
     );
 
     /**
index ff2b9b4..1879474 100644 (file)
@@ -59,14 +59,14 @@ class IMP_Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Zip
     }
 
     /**
-     * Return the rendered inline version of the Horde_Mime_Part object.
+     * Return the rendered information about the Horde_Mime_Part object.
      *
      * @return array  See Horde_Mime_Viewer_Driver::render().
      */
-    protected function _renderInline()
+    protected function _renderInfo()
     {
         $this->_callback = array(&$this, '_IMPcallback');
-        return parent::_renderInline();
+        return parent::_renderInfo();
     }
 
     /**
@@ -91,4 +91,5 @@ class IMP_Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Zip
 
         return $val;
     }
+
 }