From: Dan Brown Date: Wed, 2 Apr 2025 14:17:17 +0000 (+0100) Subject: Sort Rules: Updated name comparison to not ignore non-ascii chars X-Git-Tag: v25.02.2~1^2~4^2 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/1ba0d26fdd1e673dfcaefc87e2fa38f08cac61ad?hp=abe7467ae5f9341f2f5f9cad3b1a48724ed1a425 Sort Rules: Updated name comparison to not ignore non-ascii chars Related to #5550 and #5542 --- diff --git a/app/Sorting/SortSetOperationComparisons.php b/app/Sorting/SortSetOperationComparisons.php index e506e9a13..cb20e1860 100644 --- a/app/Sorting/SortSetOperationComparisons.php +++ b/app/Sorting/SortSetOperationComparisons.php @@ -14,12 +14,12 @@ class SortSetOperationComparisons { public static function nameAsc(Entity $a, Entity $b): int { - return strtolower(ASCII::to_transliterate($a->name)) <=> strtolower(ASCII::to_transliterate($b->name)); + return strtolower(ASCII::to_transliterate($a->name, null)) <=> strtolower(ASCII::to_transliterate($b->name, null)); } public static function nameDesc(Entity $a, Entity $b): int { - return strtolower(ASCII::to_transliterate($b->name)) <=> strtolower(ASCII::to_transliterate($a->name)); + return strtolower(ASCII::to_transliterate($b->name, null)) <=> strtolower(ASCII::to_transliterate($a->name, null)); } public static function nameNumericAsc(Entity $a, Entity $b): int diff --git a/tests/Sorting/SortRuleTest.php b/tests/Sorting/SortRuleTest.php index b0f20cba5..4a9d3a7b3 100644 --- a/tests/Sorting/SortRuleTest.php +++ b/tests/Sorting/SortRuleTest.php @@ -200,6 +200,8 @@ class SortRuleTest extends TestCase "bread", "Éclaire", "egg", + "É😀ire", + "É🫠ire", "Milk", "pizza", "Tomato",