From b0ee3081a684628fa37c485132b02c2bb9955eac Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Sat, 14 Feb 2026 12:56:50 +0100 Subject: [PATCH] Tag: invert behaviour of getCount and getOffset methods --- controllers/ManageAlbums.php | 4 ++-- controllers/ManageTags.php | 4 ++-- controllers/ViewPeople.php | 2 +- models/Tag.php | 17 ++++++++--------- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/controllers/ManageAlbums.php b/controllers/ManageAlbums.php index d5176e2..02c328e 100644 --- a/controllers/ManageAlbums.php +++ b/controllers/ManageAlbums.php @@ -59,10 +59,10 @@ class ManageAlbums extends HTMLController 'items_per_page' => 9999, 'base_url' => BASEURL . '/managealbums/', 'get_data' => function($offset, $limit, $order, $direction) { - return Tag::getOffset($offset, $limit, $order, $direction, true); + return Tag::getOffset($offset, $limit, $order, $direction); }, 'get_count' => function() { - return Tag::getCount(false, 'Album', true); + return Tag::getCount(false, 'Album'); } ]; diff --git a/controllers/ManageTags.php b/controllers/ManageTags.php index ce937e5..18f1763 100644 --- a/controllers/ManageTags.php +++ b/controllers/ManageTags.php @@ -72,10 +72,10 @@ class ManageTags extends HTMLController 'items_per_page' => 9999, 'base_url' => BASEURL . '/managetags/', 'get_data' => function($offset, $limit, $order, $direction) { - return Tag::getOffset($offset, $limit, $order, $direction, false); + return Tag::getOffset($offset, $limit, $order, $direction, true); }, 'get_count' => function() { - return Tag::getCount(false, null, false); + return Tag::getCount(false, null, true); } ]; diff --git a/controllers/ViewPeople.php b/controllers/ViewPeople.php index f241109..ee00b3b 100644 --- a/controllers/ViewPeople.php +++ b/controllers/ViewPeople.php @@ -18,7 +18,7 @@ class ViewPeople extends HTMLController $page = isset($_GET['page']) ? (int) $_GET['page'] : 1; $start = ($page - 1) * self::PER_PAGE; - $total_count = Tag::getCount(1, 'Person', true); + $total_count = Tag::getCount(1, 'Person'); // Fetch subalbums. $subalbums = Tag::getPeople(0, $start, self::PER_PAGE); diff --git a/models/Tag.php b/models/Tag.php index c47d7d1..d68c12b 100644 --- a/models/Tag.php +++ b/models/Tag.php @@ -417,16 +417,17 @@ class Tag ['tags' => $tags]); } - public static function getCount($only_used = true, $kind = '', $isAlbum = false) + public static function getCount($only_used = true, $kind = '', $invert = false) { $where = []; - if ($only_used) - $where[] = 'count > 0'; + + $where[] = 'kind ' . ($invert ? '!=' : '=' ) . ' :kind'; if (empty($kind)) $kind = 'Album'; - $operator = $isAlbum ? '=' : '!='; - $where[] = 'kind ' . $operator . ' :kind'; + if ($only_used) + $where[] = 'count > 0'; + $where = implode(' AND ', $where); return Registry::get('db')->queryValue(' @@ -438,19 +439,17 @@ class Tag ]); } - public static function getOffset($offset, $limit, $order, $direction, $isAlbum = false) + public static function getOffset($offset, $limit, $order, $direction, $invert = false) { assert(in_array($order, ['id_tag', 'tag', 'slug', 'count'])); $order = $order . ($direction === 'up' ? ' ASC' : ' DESC'); - $operator = $isAlbum ? '=' : '!='; - $db = Registry::get('db'); $res = $db->query(' SELECT t.*, u.id_user, u.first_name, u.surname FROM tags AS t LEFT JOIN users AS u ON t.id_user_owner = u.id_user - WHERE kind ' . $operator . ' :album + WHERE kind ' . ($invert ? '!=' : '=') . ' :album ORDER BY id_parent, ' . $order . ' LIMIT :offset, :limit', [