diff options
author | zotlabs <mike@macgirvin.com> | 2018-03-21 21:19:18 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-03-21 21:19:18 -0700 |
commit | 1514b0f4e5c053df60b8873b5411c70be727d227 (patch) | |
tree | 6b4824c72ef04df34e147e862d418d8100f26b8f | |
parent | dc066d4c9b84267bd551ecb122cf3708b6f1472b (diff) | |
download | volse-hubzilla-1514b0f4e5c053df60b8873b5411c70be727d227.tar.gz volse-hubzilla-1514b0f4e5c053df60b8873b5411c70be727d227.tar.bz2 volse-hubzilla-1514b0f4e5c053df60b8873b5411c70be727d227.zip |
initial support for alternative sort orders on the cloud pages. Can be triggered manually but further development is required.
-rw-r--r-- | Zotlabs/Module/Cloud.php | 6 | ||||
-rw-r--r-- | Zotlabs/Storage/Directory.php | 18 | ||||
-rw-r--r-- | include/zid.php | 1 |
3 files changed, 24 insertions, 1 deletions
diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php index 8b5476efc..34397d275 100644 --- a/Zotlabs/Module/Cloud.php +++ b/Zotlabs/Module/Cloud.php @@ -60,6 +60,12 @@ class Cloud extends \Zotlabs\Web\Controller { // if we arrived at this path with any query parameters in the url, build a clean url without // them and redirect. + if(! array_key_exists('cloud_sort',$_SESSION)) { + $_SESSION['cloud_sort'] = 'name'; + } + + $_SESSION['cloud_sort'] = (($_REQUEST['sort']) ? trim(notags($_REQUEST['sort'])) : $_SESSION['cloud_sort']); + $x = clean_query_string(); if($x !== \App::$query_string) goaway(z_root() . '/' . $x); diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php index a2dd1e9b8..a2ae0fee8 100644 --- a/Zotlabs/Storage/Directory.php +++ b/Zotlabs/Storage/Directory.php @@ -691,7 +691,23 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo } $prefix = ''; - $suffix = ' order by is_dir desc, filename asc '; + + if(! array_key_exists('cloud_sort',$_SESSION)) + $_SESSION['cloud_sort'] = 'name'; + + switch($_SESSION['cloud_sort']) { + case 'size': + $suffix = ' order by is_dir desc, filesize asc '; + break; + // The following provides inconsistent results for directories because we re-calculate the date for directories based on the most recent change + case 'date': + $suffix = ' order by is_dir desc, edited asc '; + break; + case 'name': + default: + $suffix = ' order by is_dir desc, filename asc '; + break; + } $r = q("select $prefix id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach where folder = '%s' and uid = %d $perms $suffix", dbesc($folder), diff --git a/include/zid.php b/include/zid.php index 5b5601191..5275c6d5a 100644 --- a/include/zid.php +++ b/include/zid.php @@ -109,6 +109,7 @@ function clean_query_string($s = '') { $x = strip_zids(($s) ? $s : \App::$query_string); $x = strip_owt($x); $x = strip_zats($x); + $x = strip_query_param($x,'sort'); return strip_query_param($x,'f'); } |