Don't require the browser object, it's only used at a few places.
authorJan Schneider <jan@horde.org>
Tue, 26 Oct 2010 21:11:46 +0000 (23:11 +0200)
committerJan Schneider <jan@horde.org>
Tue, 26 Oct 2010 21:12:48 +0000 (23:12 +0200)
framework/Data/lib/Horde/Data/Base.php
framework/Data/lib/Horde/Data/Csv.php
framework/Data/lib/Horde/Data/Imc.php
framework/Data/lib/Horde/Data/Tsv.php

index b58c6fc..80bd245 100644 (file)
@@ -61,12 +61,9 @@ abstract class Horde_Data_Base
      *
      * @param array $params  Parameters:
      * <pre>
-     * REQUIRED:
-     * ---------
-     * browser - (Horde_Browser) A browser object.
-     *
      * OPTIONAL:
      * ---------
+     * browser - (Horde_Browser) A browser object.
      * cleanup - (callback) A callback to call at cleanup time.
      * vars - (Horde_Variables) Form data.
      * </pre>
@@ -75,10 +72,9 @@ abstract class Horde_Data_Base
      */
     public function __construct(array $params = array())
     {
-        if (!isset($params['browser'])) {
-            throw new InvalidArgumentException('Missing browser parameter.');
+        if (isset($params['browser'])) {
+            $this->_browser = $params['browser'];
         }
-        $this->_browser = $params['browser'];
 
         if (isset($params['cleanup']) && is_callable($params['cleanup'])) {
             $this->_cleanupCallback = $params['cleanup'];
@@ -124,6 +120,10 @@ abstract class Horde_Data_Base
      */
     public function getNewline()
     {
+        if (!isset($this->_browser)) {
+            throw new Horde_Data_Exception('Missing browser parameter.');
+        }
+
         switch ($this->_browser->getPlatform()) {
         case 'win':
             return "\r\n";
@@ -266,6 +266,9 @@ abstract class Horde_Data_Base
 
         switch ($action) {
         case Horde_Data::IMPORT_FILE:
+            if (!isset($this->_browser)) {
+                throw new Horde_Data_Exception('Missing browser parameter.');
+            }
             /* Sanitize uploaded file. */
             try {
                 $this->_browser->wasFileUploaded('import_file', $param['file_types'][$this->_vars->import_format]);
index fca36d0..4fc7269 100644 (file)
@@ -194,6 +194,10 @@ class Horde_Data_Csv extends Horde_Data_Base
     public function exportFile($filename, $data, $header = false,
                                $export_mapping = array())
     {
+        if (!isset($this->_browser)) {
+            throw new Horde_Data_Exception('Missing browser parameter.');
+        }
+
         $export = $this->exportData($data, $header, $export_mapping);
         $this->_browser->downloadHeaders($filename, 'application/csv', false, strlen($export));
         echo $export;
index c4729c5..aa7962c 100644 (file)
@@ -67,6 +67,10 @@ class Horde_Data_Imc extends Horde_Data_Base
      */
     public function exportFile($filename, $data)
     {
+        if (!isset($this->_browser)) {
+            throw new Horde_Data_Exception('Missing browser parameter.');
+        }
+
         $export = $this->exportData($data);
         $this->_browser->downloadHeaders($filename, 'text/calendar', false, strlen($export));
         echo $export;
index fb2b3f8..95bfed3 100644 (file)
@@ -115,6 +115,10 @@ class Horde_Data_Tsv extends Horde_Data_Base
      */
     public function exportFile($filename, $data, $header = false)
     {
+        if (!isset($this->_browser)) {
+            throw new Horde_Data_Exception('Missing browser parameter.');
+        }
+
         $export = $this->exportData($data, $header);
         $this->_browser->downloadHeaders($filename, 'text/tab-separated-values', false, strlen($export));
         echo $export;