diff options
-rw-r--r-- | apps/files/appinfo/routes.php | 12 | ||||
-rw-r--r-- | lib/route.php | 5 | ||||
-rw-r--r-- | lib/search/provider/file.php | 3 |
3 files changed, 18 insertions, 2 deletions
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php new file mode 100644 index 00000000000..e1ab560803d --- /dev/null +++ b/apps/files/appinfo/routes.php @@ -0,0 +1,12 @@ +<?php +/** + * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +$this->create('download', 'download{file}') + ->requirements(array('file' => '.*')) + ->actionInclude('files/download.php'); + diff --git a/lib/route.php b/lib/route.php index 772446e5615..ba9d1724d12 100644 --- a/lib/route.php +++ b/lib/route.php @@ -64,4 +64,9 @@ class OC_Route extends Route { $this->setDefault('action', $action); return $this; } + + public function actionInclude($file) { + $function = create_function('$param', 'unset($param["_route"]);$_GET=$param;unset($param);require_once "'.$file.'";'); + $this->action($function); + } } diff --git a/lib/search/provider/file.php b/lib/search/provider/file.php index 21fae0c1ce5..e4e976ed7fd 100644 --- a/lib/search/provider/file.php +++ b/lib/search/provider/file.php @@ -10,12 +10,11 @@ class OC_Search_Provider_File extends OC_Search_Provider{ $name = basename($path); $text = ''; - $path = urlencode($path); if($mime=='httpd/unix-directory') { $link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path)); $type = 'Files'; }else{ - $link = OC_Helper::linkTo( 'files', 'download.php', array('file' => $path)); + $link = OC_Helper::linkToRoute( 'download', array('file' => $path)); $mimeBase = $fileData['mimepart']; switch($mimeBase) { case 'audio': |