Add stub for 'raw' view
authorMichael M Slusarz <slusarz@curecanti.org>
Mon, 9 Nov 2009 21:23:20 +0000 (14:23 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 10 Nov 2009 16:51:23 +0000 (09:51 -0700)
30 files changed:
framework/Mime/lib/Horde/Mime/Viewer/Audio.php
framework/Mime/lib/Horde/Mime/Viewer/Css.php
framework/Mime/lib/Horde/Mime/Viewer/Deb.php
framework/Mime/lib/Horde/Mime/Viewer/Driver.php
framework/Mime/lib/Horde/Mime/Viewer/Enriched.php
framework/Mime/lib/Horde/Mime/Viewer/Enscript.php
framework/Mime/lib/Horde/Mime/Viewer/Html.php
framework/Mime/lib/Horde/Mime/Viewer/Images.php
framework/Mime/lib/Horde/Mime/Viewer/Msexcel.php
framework/Mime/lib/Horde/Mime/Viewer/Mspowerpoint.php
framework/Mime/lib/Horde/Mime/Viewer/Msword.php
framework/Mime/lib/Horde/Mime/Viewer/Ooo.php
framework/Mime/lib/Horde/Mime/Viewer/Pdf.php
framework/Mime/lib/Horde/Mime/Viewer/Php.php
framework/Mime/lib/Horde/Mime/Viewer/Plain.php
framework/Mime/lib/Horde/Mime/Viewer/Rar.php
framework/Mime/lib/Horde/Mime/Viewer/Rfc822.php
framework/Mime/lib/Horde/Mime/Viewer/Richtext.php
framework/Mime/lib/Horde/Mime/Viewer/Rpm.php
framework/Mime/lib/Horde/Mime/Viewer/Rtf.php
framework/Mime/lib/Horde/Mime/Viewer/Simple.php
framework/Mime/lib/Horde/Mime/Viewer/Smil.php
framework/Mime/lib/Horde/Mime/Viewer/Srchighlite.php
framework/Mime/lib/Horde/Mime/Viewer/Tgz.php
framework/Mime/lib/Horde/Mime/Viewer/Tnef.php
framework/Mime/lib/Horde/Mime/Viewer/Vcard.php
framework/Mime/lib/Horde/Mime/Viewer/Webcpp.php
framework/Mime/lib/Horde/Mime/Viewer/Wordperfect.php
framework/Mime/lib/Horde/Mime/Viewer/Zip.php
framework/Mime/package.xml

index 21ea21e..c3c2d3d 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Audio extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index c4fa8b7..ea2c0ff 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Css extends Horde_Mime_Viewer_Source
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 38cfbe7..5de4d86 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Deb extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 504f880..79a8de8 100644 (file)
@@ -44,7 +44,8 @@ class Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => false,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
@@ -101,6 +102,9 @@ class Horde_Mime_Viewer_Driver
      *          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
@@ -142,6 +146,13 @@ class Horde_Mime_Viewer_Driver
             } catch (Horde_Exception $e) {
                 $error = $e;
             }
+
+        case 'raw':
+            try {
+                return $this->_renderRaw();
+            } catch (Horde_Exception $e) {
+                $error = $e;
+            }
         }
 
         // TODO: Error handling
@@ -190,9 +201,24 @@ 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 _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', or 'info'.
+     * @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.
@@ -207,6 +233,7 @@ class Horde_Mime_Viewer_Driver
         switch ($mode) {
         case 'full':
         case 'info':
+        case 'raw':
             return $this->_capability[$mode];
 
         case 'inline':
index 4145daf..3f51497 100644 (file)
@@ -35,7 +35,8 @@ class Horde_Mime_Viewer_Enriched extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 1a2ddf5..0708053 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Enscript extends Horde_Mime_Viewer_Source
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index d010203..9a03661 100644 (file)
@@ -25,7 +25,8 @@ class Horde_Mime_Viewer_Html extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 085c2d4..4d81758 100644 (file)
@@ -22,7 +22,8 @@ class Horde_Mime_Viewer_Images extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index e26e28c..9c967b6 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Msexcel extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 3a2c381..0ff6f0a 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Mspowerpoint extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index f1ce494..34e5b27 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Msword extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 29aa138..23de901 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Ooo extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 4305a11..ff4e505 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Pdf extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 2799b0a..f201a74 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Php extends Horde_Mime_Viewer_Source
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 3ede576..46a4d09 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Plain extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 194e55b..28740d6 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Rar extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 8575c57..a3398c9 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Rfc822 extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => true,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 77964b2..6a6636a 100644 (file)
@@ -44,7 +44,8 @@ class Horde_Mime_Viewer_Richtext extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 68432df..f06030c 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Rpm extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 6337bab..d3a55d6 100644 (file)
@@ -25,7 +25,8 @@ class Horde_Mime_Viewer_Rtf extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 6b3d9b9..652fd7d 100644 (file)
@@ -23,7 +23,8 @@ class Horde_Mime_Viewer_Simple extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 187d4c1..e80028b 100644 (file)
@@ -36,7 +36,8 @@ class Horde_Mime_Viewer_Smil extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 0ee5c63..ca22106 100644 (file)
@@ -25,7 +25,8 @@ class Horde_Mime_Viewer_Srchighlite extends Horde_Mime_Viewer_Source
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index b4eaf69..41957ed 100644 (file)
@@ -22,7 +22,8 @@ class Horde_Mime_Viewer_Tgz extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => false,
         'info' => true,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 71ca81e..8016f8e 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Tnef extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 17f548a..a17bfea 100644 (file)
@@ -22,7 +22,8 @@ class Horde_Mime_Viewer_Vcard extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 81386b5..2bdd266 100644 (file)
@@ -25,7 +25,8 @@ class Horde_Mime_Viewer_Webcpp extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index 80e5ce8..5d9a10f 100644 (file)
@@ -25,7 +25,8 @@ class Horde_Mime_Viewer_Wordperfect extends Horde_Mime_Viewer_Driver
         'forceinline' => false,
         'full' => true,
         'info' => false,
-        'inline' => false
+        'inline' => false,
+        'raw' => false
     );
 
     /**
index 3d03665..545b70b 100644 (file)
@@ -24,7 +24,8 @@ class Horde_Mime_Viewer_Zip extends Horde_Mime_Viewer_Driver
         'forceinline' => true,
         'full' => true,
         'info' => false,
-        'inline' => true
+        'inline' => true,
+        'raw' => false
     );
 
     /**
index c4bbb1f..ec8b32a 100644 (file)
@@ -31,7 +31,8 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <api>alpha</api>
  </stability>
  <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
- <notes>* Horde_Mime_Part::parseMessage() correctly parses non-MIME parts.
+ <notes>* Add 'raw' render view to Horde_Mime_Viewer.
+ * Horde_Mime_Part::parseMessage() correctly parses non-MIME parts.
  * Remove dependence on PEAR's Mail_mimeDecode::.
  * Added Horde_Mime::uudecode().
  * Remove support for deprecated mime_magic module.