Use Config class/Option to deactivate the count on albums

This commit is contained in:
Michael 2017-01-07 09:05:52 +00:00
parent cb5df4d715
commit 414c5ddae0
3 changed files with 32 additions and 12 deletions

View file

@ -47,6 +47,7 @@ Example: To set the directory value please add this line to your .htconfig.php:
* **memcache** (Boolean) - Use memcache. To use memcache the PECL extension "memcache" has to be installed and activated. * **memcache** (Boolean) - Use memcache. To use memcache the PECL extension "memcache" has to be installed and activated.
* **memcache_host** - Hostname of the memcache daemon. Default is '127.0.0.1'. * **memcache_host** - Hostname of the memcache daemon. Default is '127.0.0.1'.
* **memcache_port** - Portnumber of the memcache daemon. Default is 11211. * **memcache_port** - Portnumber of the memcache daemon. Default is 11211.
* **no_count** (Boolean) - Don't do count calculations (currently only when showing albums)
* **no_oembed** (Boolean) - Don't use OEmbed to fetch more information about a link. * **no_oembed** (Boolean) - Don't use OEmbed to fetch more information about a link.
* **no_oembed_rich_content** (Boolean) - Don't show the rich content (e.g. embedded PDF). * **no_oembed_rich_content** (Boolean) - Don't show the rich content (e.g. embedded PDF).
* **no_smilies** (Boolean) - Don't show smilies. * **no_smilies** (Boolean) - Don't show smilies.

View file

@ -3,6 +3,10 @@
* @file include/dbclean.php * @file include/dbclean.php
* @brief The script is called from time to time to clean the database entries and remove orphaned data. * @brief The script is called from time to time to clean the database entries and remove orphaned data.
*/ */
use \Friendica\Core\Config;
use \Friendica\Core\PConfig;
require_once("boot.php"); require_once("boot.php");
function dbclean_run(&$argv, &$argc) { function dbclean_run(&$argv, &$argc) {
@ -22,7 +26,7 @@ function dbclean_run(&$argv, &$argc) {
load_config('config'); load_config('config');
load_config('system'); load_config('system');
if (!get_config("system", "dbclean")) { if (!Config::get('system', 'dbclean', false)) {
return; return;
} }

View file

@ -4,6 +4,9 @@
* @brief Functions related to photo handling. * @brief Functions related to photo handling.
*/ */
use \Friendica\Core\Config;
use \Friendica\Core\PConfig;
function getGps($exifCoord, $hemi) { function getGps($exifCoord, $hemi) {
$degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0; $degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;
$minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0; $minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;
@ -42,6 +45,7 @@ function photo_albums($uid, $update = false) {
$key = "photo_albums:".$uid.":".local_user().":".remote_user(); $key = "photo_albums:".$uid.":".local_user().":".remote_user();
$albums = Cache::get($key); $albums = Cache::get($key);
if (is_null($albums) OR $update) { if (is_null($albums) OR $update) {
if (!Config::get('system', 'no_count', false)) {
/// @todo This query needs to be renewed. It is really slow /// @todo This query needs to be renewed. It is really slow
// At this time we just store the data in the cache // At this time we just store the data in the cache
$albums = qu("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album` $albums = qu("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`
@ -52,6 +56,17 @@ function photo_albums($uid, $update = false) {
dbesc('Contact Photos'), dbesc('Contact Photos'),
dbesc(t('Contact Photos')) dbesc(t('Contact Photos'))
); );
} else {
// This query doesn't do the count and is much faster
$albums = qu("SELECT DISTINCT(`album`), '' AS `total`
FROM `photo` USE INDEX (`uid_album_created`)
WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra
GROUP BY `album` ORDER BY `created` DESC",
intval($uid),
dbesc('Contact Photos'),
dbesc(t('Contact Photos'))
);
}
Cache::set($key, $albums, CACHE_DAY); Cache::set($key, $albums, CACHE_DAY);
} }
return $albums; return $albums;