]> source.dussan.org Git - nextcloud-server.git/commitdiff
Split office providers into one class per file
authorJoas Schilling <nickvergessen@gmx.de>
Fri, 28 Nov 2014 08:20:58 +0000 (09:20 +0100)
committerJoas Schilling <nickvergessen@gmx.de>
Fri, 28 Nov 2014 08:28:30 +0000 (09:28 +0100)
lib/private/preview.php
lib/private/preview/msoffice2003.php [new file with mode: 0644]
lib/private/preview/msoffice2007.php [new file with mode: 0644]
lib/private/preview/msofficedoc.php [new file with mode: 0644]
lib/private/preview/office-cl.php [deleted file]
lib/private/preview/office.php [new file with mode: 0644]
lib/private/preview/opendocument.php [new file with mode: 0644]
lib/private/preview/staroffice.php [new file with mode: 0644]

index f08a0ce2c2775a6d44646b92dfa581e7052fdf6c..696895cd3ad9114f01aa3408cd54a47124e45898 100644 (file)
@@ -16,7 +16,6 @@ namespace OC;
 use OC\Preview\Provider;
 use OCP\Files\NotFoundException;
 
-require_once 'preview/office-cl.php';
 require_once 'preview/bitmap.php';
 
 class Preview {
diff --git a/lib/private/preview/msoffice2003.php b/lib/private/preview/msoffice2003.php
new file mode 100644 (file)
index 0000000..55fbe70
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
+class MSOffice2003 extends Office {
+       /**
+        * {@inheritDoc}
+        */
+       public function getMimeType() {
+               return '/application\/vnd.ms-.*/';
+       }
+}
diff --git a/lib/private/preview/msoffice2007.php b/lib/private/preview/msoffice2007.php
new file mode 100644 (file)
index 0000000..ace246e
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
+class MSOffice2007 extends Office {
+       /**
+        * {@inheritDoc}
+        */
+       public function getMimeType() {
+               return '/application\/vnd.openxmlformats-officedocument.*/';
+       }
+}
diff --git a/lib/private/preview/msofficedoc.php b/lib/private/preview/msofficedoc.php
new file mode 100644 (file)
index 0000000..42507af
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+//.doc, .dot
+class MSOfficeDoc extends Office {
+       /**
+        * {@inheritDoc}
+        */
+       public function getMimeType() {
+               return '/application\/msword/';
+       }
+}
diff --git a/lib/private/preview/office-cl.php b/lib/private/preview/office-cl.php
deleted file mode 100644 (file)
index 0f175e8..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-namespace OC\Preview;
-
-       //we need imagick to convert
-       class Office extends Provider {
-
-               private $cmd;
-
-               public function getMimeType() {
-                       return null;
-               }
-
-               public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
-                       $this->initCmd();
-                       if(is_null($this->cmd)) {
-                               return false;
-                       }
-
-                       $absPath = $fileview->toTmpFile($path);
-
-                       $tmpDir = get_temp_dir();
-
-                       $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId().'/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir ';
-                       $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
-
-                       $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
-
-                       shell_exec($exec);
-
-                       //create imagick object from pdf
-                       try{
-                               $pdf = new \imagick($absPath . '.pdf' . '[0]');
-                               $pdf->setImageFormat('jpg');
-                       } catch (\Exception $e) {
-                               unlink($absPath);
-                               unlink($absPath . '.pdf');
-                               \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
-                               return false;
-                       }
-
-                       $image = new \OC_Image();
-                       $image->loadFromData($pdf);
-
-                       unlink($absPath);
-                       unlink($absPath . '.pdf');
-
-                       return $image->valid() ? $image : false;
-               }
-
-               private function initCmd() {
-                       $cmd = '';
-
-                       if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
-                               $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
-                       }
-
-                       $whichLibreOffice = shell_exec('command -v libreoffice');
-                       if($cmd === '' && !empty($whichLibreOffice)) {
-                               $cmd = 'libreoffice';
-                       }
-
-                       $whichOpenOffice = shell_exec('command -v openoffice');
-                       if($cmd === '' && !empty($whichOpenOffice)) {
-                               $cmd = 'openoffice';
-                       }
-
-                       if($cmd === '') {
-                               $cmd = null;
-                       }
-
-                       $this->cmd = $cmd;
-               }
-       }
-
-       //.doc, .dot
-       class MSOfficeDoc extends Office {
-
-               public function getMimeType() {
-                       return '/application\/msword/';
-               }
-
-       }
-
-       //.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
-       class MSOffice2003 extends Office {
-
-               public function getMimeType() {
-                       return '/application\/vnd.ms-.*/';
-               }
-
-       }
-
-       //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
-       class MSOffice2007 extends Office {
-
-               public function getMimeType() {
-                       return '/application\/vnd.openxmlformats-officedocument.*/';
-               }
-
-       }
-
-       //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
-       class OpenDocument extends Office {
-
-               public function getMimeType() {
-                       return '/application\/vnd.oasis.opendocument.*/';
-               }
-
-       }
-
-       //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
-       class StarOffice extends Office {
-
-               public function getMimeType() {
-                       return '/application\/vnd.sun.xml.*/';
-               }
-
-       }
diff --git a/lib/private/preview/office.php b/lib/private/preview/office.php
new file mode 100644 (file)
index 0000000..5bd61bd
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+abstract class Office extends Provider {
+       private $cmd;
+
+       /**
+        * {@inheritDoc}
+        */
+       public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
+               $this->initCmd();
+               if(is_null($this->cmd)) {
+                       return false;
+               }
+
+               $absPath = $fileview->toTmpFile($path);
+
+               $tmpDir = get_temp_dir();
+
+               $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId().'/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir ';
+               $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
+
+               $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
+
+               shell_exec($exec);
+
+               //create imagick object from pdf
+               try{
+                       $pdf = new \imagick($absPath . '.pdf' . '[0]');
+                       $pdf->setImageFormat('jpg');
+               } catch (\Exception $e) {
+                       unlink($absPath);
+                       unlink($absPath . '.pdf');
+                       \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+                       return false;
+               }
+
+               $image = new \OC_Image();
+               $image->loadFromData($pdf);
+
+               unlink($absPath);
+               unlink($absPath . '.pdf');
+
+               return $image->valid() ? $image : false;
+       }
+
+       private function initCmd() {
+               $cmd = '';
+
+               if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
+                       $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
+               }
+
+               $whichLibreOffice = shell_exec('command -v libreoffice');
+               if($cmd === '' && !empty($whichLibreOffice)) {
+                       $cmd = 'libreoffice';
+               }
+
+               $whichOpenOffice = shell_exec('command -v openoffice');
+               if($cmd === '' && !empty($whichOpenOffice)) {
+                       $cmd = 'openoffice';
+               }
+
+               if($cmd === '') {
+                       $cmd = null;
+               }
+
+               $this->cmd = $cmd;
+       }
+}
diff --git a/lib/private/preview/opendocument.php b/lib/private/preview/opendocument.php
new file mode 100644 (file)
index 0000000..fe1468e
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
+class OpenDocument extends Office {
+       /**
+        * {@inheritDoc}
+        */
+       public function getMimeType() {
+               return '/application\/vnd.oasis.opendocument.*/';
+       }
+}
diff --git a/lib/private/preview/staroffice.php b/lib/private/preview/staroffice.php
new file mode 100644 (file)
index 0000000..73ad368
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Preview;
+
+//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
+class StarOffice extends Office {
+       /**
+        * {@inheritDoc}
+        */
+       public function getMimeType() {
+               return '/application\/vnd.sun.xml.*/';
+       }
+}