aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/photos.php28
-rw-r--r--include/widgets.php4
2 files changed, 16 insertions, 16 deletions
diff --git a/include/photos.php b/include/photos.php
index 1cc64f6fa..c64d662ea 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -443,7 +443,7 @@ function photo_upload($channel, $observer, $args) {
* * success (bool)
* * albums (array)
*/
-function photos_albums_list($channel, $observer) {
+function photos_albums_list($channel, $observer, $sort_key = 'album', $direction = 'asc') {
$channel_id = $channel['channel_id'];
$observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
@@ -451,11 +451,15 @@ function photos_albums_list($channel, $observer) {
if(! perm_is_allowed($channel_id, $observer_xchan, 'view_storage'))
return false;
- /** @FIXME create a permissions SQL which works on arbitrary observers and channels, regardless of login or web status */
- $sql_extra = permissions_sql($channel_id);
+ $sql_extra = permissions_sql($channel_id,$observer_xchan);
+
+ $sort_key = dbesc($sort_key);
+ $direction = dbesc($direction);
+
+
- $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and photo_usage IN ( %d, %d ) $sql_extra group by album order by max(created) desc",
+ $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and photo_usage IN ( %d, %d ) $sql_extra group by album order by $sort_key $direction",
intval($channel_id),
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE)
@@ -483,20 +487,14 @@ function photos_albums_list($channel, $observer) {
return $ret;
}
-function photos_album_widget($channelx,$observer,$albums = null) {
+function photos_album_widget($channelx,$observer,$sortkey = 'album',$direction = 'asc') {
$o = '';
- // If we weren't passed an album list, see if the photos module
- // dropped one for us to find in App::$data['albums'].
- // If all else fails, load it.
-
- if(! $albums) {
- if(array_key_exists('albums', App::$data))
- $albums = App::$data['albums'];
- else
- $albums = photos_albums_list($channelx,$observer);
- }
+ if(array_key_exists('albums', App::$data))
+ $albums = App::$data['albums'];
+ else
+ $albums = photos_albums_list($channelx,$observer,$sortkey,$direction);
if($albums['success']) {
$o = replace_macros(get_markup_template('photo_albums.tpl'),array(
diff --git a/include/widgets.php b/include/widgets.php
index a1b9f1956..312b63729 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -799,8 +799,10 @@ function widget_photo_albums($arr) {
if((! $channelx) || (! perm_is_allowed(App::$profile['profile_uid'], get_observer_hash(), 'view_storage')))
return '';
require_once('include/photos.php');
+ $sortkey = ((array_key_exists('sortkey',$arr)) ? $arr['sortkey'] : 'album');
+ $direction = ((array_key_exists('direction',$arr)) ? $arr['direction'] : 'asc');
- return photos_album_widget($channelx, App::get_observer());
+ return photos_album_widget($channelx, App::get_observer(),$sortkey,$direction);
}