From 4058898de2006cb4ee3b4565bd3e0235b4d0f0d9 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 31 Oct 2019 12:33:18 +0100 Subject: Fix categories sorting (#2616) I had a bug when some articles in a category were unread. Sometimes, filtering the category displayed all the articles, even with the "Adjust showing" option. A reasonably good guess was to look the last commits that impacted the categories and, indeed, it was introduced by the new category sorting system. The sort function (`usort`) doesn't keep the index association, which is important here. I must admit I don't understand exactly why (I didn't search), but the keys are probably used somewhere. Another fix would be to not rely on these keys anymore. The bug was introduced in 042fcd5e93884690efdd2f957ca02751958c0724 - Ref PR: https://github.com/FreshRSS/FreshRSS/pull/2592 - Ref usort: https://www.php.net/manual/en/function.usort.php - Ref uasort: https://www.php.net/manual/en/function.uasort.php --- app/Models/CategoryDAO.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/CategoryDAO.php b/app/Models/CategoryDAO.php index a0eda89e7..c1277751c 100644 --- a/app/Models/CategoryDAO.php +++ b/app/Models/CategoryDAO.php @@ -208,7 +208,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable return $categories; } - usort($categories, function ($a, $b) { + uasort($categories, function ($a, $b) { $aPosition = $a->attributes('position'); $bPosition = $b->attributes('position'); if ($aPosition === $bPosition) { -- cgit v1.2.3