possibly improve the album list query and save the result in App::$data
This commit is contained in:
parent
bb0f3afb71
commit
8ef84e2aa7
@ -691,20 +691,17 @@ class Photos extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$album = (($datum) ? hex2bin($datum) : '');
|
$album = (($datum) ? hex2bin($datum) : '');
|
||||||
|
|
||||||
|
|
||||||
\App::$page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$cmd) . '" title="oembed" />' . "\r\n";
|
\App::$page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$cmd) . '" title="oembed" />' . "\r\n";
|
||||||
|
|
||||||
$r = q("SELECT resource_id, max(imgscale) AS imgscale FROM photo WHERE uid = %d AND album = '%s'
|
//check if the album exists and if we have perms
|
||||||
AND imgscale <= 4 and photo_usage IN ( %d, %d ) and is_nsfw = %d $sql_extra GROUP BY resource_id",
|
$r = q("SELECT album FROM photo WHERE uid = %d AND album = '%s' and is_nsfw = %d $sql_extra LIMIT 1",
|
||||||
intval($owner_uid),
|
intval($owner_uid),
|
||||||
dbesc($album),
|
dbesc($album),
|
||||||
intval(PHOTO_NORMAL),
|
|
||||||
intval(PHOTO_PROFILE),
|
|
||||||
intval($unsafe)
|
intval($unsafe)
|
||||||
);
|
);
|
||||||
if(count($r)) {
|
|
||||||
\App::set_pager_total(count($r));
|
if($r) {
|
||||||
\App::set_pager_itemspage(60);
|
\App::set_pager_itemspage(60);
|
||||||
} else {
|
} else {
|
||||||
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address']);
|
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address']);
|
||||||
|
@ -464,10 +464,15 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction
|
|||||||
$sort_key = dbesc($sort_key);
|
$sort_key = dbesc($sort_key);
|
||||||
$direction = dbesc($direction);
|
$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 $sort_key $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 $sort_key $direction",
|
||||||
intval($channel_id),
|
// intval($channel_id),
|
||||||
intval(PHOTO_NORMAL),
|
// intval(PHOTO_NORMAL),
|
||||||
intval(PHOTO_PROFILE)
|
// intval(PHOTO_PROFILE)
|
||||||
|
//);
|
||||||
|
|
||||||
|
// this query provides the same results but might perform better
|
||||||
|
$albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and os_storage = 1 $sql_extra group by album order by $sort_key $direction",
|
||||||
|
intval($channel_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
// add various encodings to the array so we can just loop through and pick them out in a template
|
// add various encodings to the array so we can just loop through and pick them out in a template
|
||||||
@ -490,6 +495,8 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
App::$data['albums'] = $ret;
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user