]> source.dussan.org Git - nextcloud-server.git/commitdiff
adding public interface for preview
authorThomas Müller <thomas.mueller@tmit.eu>
Wed, 4 Sep 2013 21:45:11 +0000 (23:45 +0200)
committerThomas Müller <thomas.mueller@tmit.eu>
Wed, 4 Sep 2013 21:45:11 +0000 (23:45 +0200)
lib/preview.php
lib/previewmanager.php [new file with mode: 0755]
lib/public/ipreview.php [new file with mode: 0644]
lib/public/iservercontainer.php
lib/public/preview.php [deleted file]
lib/server.php

index b40ba191fbae27eb1b36444bc29eea543038568d..266f7795f12f420402c9809b67cbcc376e51444e 100755 (executable)
@@ -42,6 +42,9 @@ class Preview {
        private $scalingup;
 
        //preview images object
+       /**
+        * @var \OC_Image
+        */
        private $preview;
 
        //preview providers
@@ -624,4 +627,4 @@ class Preview {
                }
                return false;
        }
-}
\ No newline at end of file
+}
diff --git a/lib/previewmanager.php b/lib/previewmanager.php
new file mode 100755 (executable)
index 0000000..ac9a866
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright (c) 2013 Thomas Müller thomas.mueller@tmit.eu
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+namespace OC;
+
+use OCP\image;
+use OCP\IPreview;
+
+class PreviewManager implements IPreview {
+       /**
+        * @brief return a preview of a file
+        * @param string $file The path to the file where you want a thumbnail from
+        * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image
+        * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
+        * @param boolean $scaleUp Scale smaller images up to the thumbnail size or not. Might look ugly
+        * @return \OCP\Image
+        */
+       function createPreview($file, $maxX = 100, $maxY = 75, $scaleUp = false)
+       {
+               $preview = new \OC\Preview('', '/', $file, $maxX, $maxY, $scaleUp);
+               return $preview->getPreview();
+       }
+
+       /**
+        * @brief returns true if the passed mime type is supported
+        * @param string $mimeType
+        * @return boolean
+        */
+       function isMimeSupported($mimeType = '*')
+       {
+               return \OC\Preview::isMimeSupported($mimeType);
+       }
+}
diff --git a/lib/public/ipreview.php b/lib/public/ipreview.php
new file mode 100644 (file)
index 0000000..b01e7f5
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org
+ * 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 OCP;
+
+/**
+ * This class provides functions to render and show thumbnails and previews of files
+ */
+interface IPreview
+{
+
+       /**
+        * @brief return a preview of a file
+        * @param string $file The path to the file where you want a thumbnail from
+        * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image
+        * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
+        * @param boolean $scaleUp Scale smaller images up to the thumbnail size or not. Might look ugly
+        * @return \OCP\Image
+        */
+       function createPreview($file, $maxX = 100, $maxY = 75, $scaleUp = false);
+
+
+       /**
+        * @brief returns true if the passed mime type is supported
+        * @param string $mimeType
+        * @return boolean
+        */
+       function isMimeSupported($mimeType = '*');
+
+}
index 5f5b9677549587b836000cd699127a291ed95476..144c1a5b3b92474bbe3b2a4416ecd77cf1871cfa 100644 (file)
@@ -48,4 +48,10 @@ interface IServerContainer {
         */
        function getRequest();
 
+       /**
+        * Returns the preview manager which can create preview images for a given file
+        *
+        * @return \OCP\IPreview
+        */
+       function getPreviewManager();
 }
diff --git a/lib/public/preview.php b/lib/public/preview.php
deleted file mode 100644 (file)
index 7588347..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org
- * 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 OCP;
-
-/**
- * This class provides functions to render and show thumbnails and previews of files
- */
-class Preview {
-
-       /**
-        * @brief return a preview of a file
-        * @param $file The path to the file where you want a thumbnail from
-        * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image
-        * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
-        * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly
-        * @return image
-        */
-       public static function show($file,$maxX=100,$maxY=75,$scaleup=false) {
-               return(\OC\Preview::show($file,$maxX,$maxY,$scaleup));
-       }
-
-
-
-       public static function isMimeSupported($mimetype='*') {
-               return \OC\Preview::isMimeSupported($mimetype);
-       }
-
-}
index ad955bf5c655062cf39a23d378c5f79b459ab013..d85996612e9dfcfb43a69184ac83858e3b36f17e 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace OC;
 
+use OC\AppFramework\Http\Request;
 use OC\AppFramework\Utility\SimpleContainer;
 use OCP\IServerContainer;
 
@@ -17,6 +18,35 @@ class Server extends SimpleContainer implements IServerContainer {
                $this->registerService('ContactsManager', function($c){
                        return new ContactsManager();
                });
+               $this->registerService('Request', function($c){
+                       $params = array();
+
+                       // we json decode the body only in case of content type json
+                       if (isset($_SERVER['CONTENT_TYPE']) && stripos($_SERVER['CONTENT_TYPE'],'json') === true ) {
+                               $params = json_decode(file_get_contents('php://input'), true);
+                               $params = is_array($params) ? $params: array();
+                       }
+
+                       return new Request(
+                               array(
+                                       'get' => $_GET,
+                                       'post' => $_POST,
+                                       'files' => $_FILES,
+                                       'server' => $_SERVER,
+                                       'env' => $_ENV,
+                                       'session' => $_SESSION,
+                                       'cookies' => $_COOKIE,
+                                       'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']))
+                                               ? $_SERVER['REQUEST_METHOD']
+                                               : null,
+                                       'params' => $params,
+                                       'urlParams' => $c['urlParams']
+                               )
+                       );
+               });
+               $this->registerService('PreviewManager', function($c){
+                       return new PreviewManager();
+               });
        }
 
        /**
@@ -37,4 +67,14 @@ class Server extends SimpleContainer implements IServerContainer {
        {
                return $this->query('Request');
        }
+
+       /**
+        * Returns the preview manager which can create preview images for a given file
+        *
+        * @return \OCP\IPreview
+        */
+       function getPreviewManager()
+       {
+               return $this->query('PreviewManager');
+       }
 }