summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/share/folder.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/lib/share/folder.php')
-rw-r--r--apps/files_sharing/lib/share/folder.php73
1 files changed, 27 insertions, 46 deletions
diff --git a/apps/files_sharing/lib/share/folder.php b/apps/files_sharing/lib/share/folder.php
index 2f101d33c8a..b6db96614fd 100644
--- a/apps/files_sharing/lib/share/folder.php
+++ b/apps/files_sharing/lib/share/folder.php
@@ -21,8 +21,32 @@
class OC_Share_Backend_Folder extends OC_Share_Backend_File {
- public function inCollection($collections, $item) {
- // TODO
+ public function formatItems($items, $format, $parameters = null) {
+ if ($format == self::FORMAT_SHARED_STORAGE) {
+ // Only 1 item should come through for this format call
+ return array('path' => $items[key($items)]['file_source'], 'permissions' => $items[key($items)]['permissions']);
+ } else if ($format == self::FORMAT_FILE_APP && isset($parameters['folder'])) {
+ // Only 1 item should come through for this format call
+ $folder = $items[key($items)];
+ if (isset($parameters['mimetype_filter'])) {
+ $mimetype_filter = $parameters['mimetype_filter'];
+ } else {
+ $mimetype_filter = '';
+ }
+ $path = $folder['file_source'].substr($parameters['folder'], 7 + strlen($folder['file_target']));
+ $files = OC_FileCache::getFolderContent($path, '', $mimetype_filter);
+ foreach ($files as &$file) {
+ $file['directory'] = $parameters['folder'];
+ $file['type'] = ($file['mimetype'] == 'httpd/unix-directory') ? 'dir' : 'file';
+ $file['permissions'] = $folder['permissions'];
+ if ($file['type'] == 'file') {
+ // Remove Create permission if type is file
+ $file['permissions'] &= ~OCP\Share::PERMISSION_CREATE;
+ }
+ }
+ return $files;
+ }
+ return array();
}
public function getChildren($itemSource) {
@@ -34,47 +58,4 @@ class OC_Share_Backend_Folder extends OC_Share_Backend_File {
return $sources;
}
- public function formatItems($items, $format, $parameters = null) {
- if ($format == self::FORMAT_FILE_APP && isset($parameters['folder'])) {
- $folder = $items[key($items)];
- $query = OCP\DB::prepare('SELECT path FROM *PREFIX*fscache WHERE id = ?');
- $result = $query->execute(array($folder['file_source']))->fetchRow();
- if (isset($result['path'])) {
- if (isset($parameters['mimetype_filter'])) {
- $mimetype_filter = $parameters['mimetype_filter'];
- } else {
- $mimetype_filter = '';
- }
- $pos = strpos($result['path'], $folder['item']);
- $path = substr($result['path'], $pos).substr($parameters['folder'], strlen($folder['file_target']));
- $root = substr($result['path'], 0, $pos);
- $files = OC_FileCache::getFolderContent($path, $root, $mimetype_filter);
- foreach ($files as &$file) {
- $file['directory'] = $parameters['folder'];
- $file['type'] = ($file['mimetype'] == 'httpd/unix-directory') ? 'dir' : 'file';
- $permissions = $folder['permissions'];
- if ($file['type'] == 'file') {
- // Remove Create permission if type is file
- $permissions &= ~OCP\Share::PERMISSION_CREATE;
- }
- $file['permissions'] = $permissions;
- }
- return $files;
- }
- }/* else if ($format == self::FORMAT_OPENDIR_ROOT) {
- $query = OCP\DB::prepare('SELECT name FROM *PREFIX*fscache WHERE id IN ('.$ids.')');
- $result = $query->execute();
- $files = array();
- while ($file = $result->fetchRow()) {
- // Set target path
- $files[] = basename($shares[$file['id']]['item_target']);
- }
- return $files;
- }*/
- return array();
- }
-
-}
-
-
-?> \ No newline at end of file
+} \ No newline at end of file