diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-04 23:45:11 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-04 23:45:11 +0200 |
commit | 7618cf3005f8bda8375183010711a9a2cdfb1fea (patch) | |
tree | d26260202fc9eab055586c2bbc37b5b35c5319ed | |
parent | 835f477d8fda0566e5a03a652a3b8005cb886389 (diff) | |
download | nextcloud-server-7618cf3005f8bda8375183010711a9a2cdfb1fea.tar.gz nextcloud-server-7618cf3005f8bda8375183010711a9a2cdfb1fea.zip |
adding public interface for preview
-rwxr-xr-x | lib/preview.php | 5 | ||||
-rwxr-xr-x | lib/previewmanager.php | 38 | ||||
-rw-r--r-- | lib/public/ipreview.php | 35 | ||||
-rw-r--r-- | lib/public/iservercontainer.php | 6 | ||||
-rw-r--r-- | lib/public/preview.php | 34 | ||||
-rw-r--r-- | lib/server.php | 40 |
6 files changed, 123 insertions, 35 deletions
diff --git a/lib/preview.php b/lib/preview.php index b40ba191fba..266f7795f12 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -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 index 00000000000..ac9a866a75b --- /dev/null +++ b/lib/previewmanager.php @@ -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 index 00000000000..b01e7f5b539 --- /dev/null +++ b/lib/public/ipreview.php @@ -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 = '*'); + +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index 5f5b9677549..144c1a5b3b9 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -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 index 7588347eccb..00000000000 --- a/lib/public/preview.php +++ /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); - } - -} diff --git a/lib/server.php b/lib/server.php index ad955bf5c65..d85996612e9 100644 --- a/lib/server.php +++ b/lib/server.php @@ -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'); + } } |