From c533b5beebbf0131be1af5f7a4d3ce3e72ec4c96 Mon Sep 17 00:00:00 2001
From: Dorian Merz <merz@ub.uni-leipzig.de>
Date: Fri, 17 Jul 2020 10:00:57 +0200
Subject: [PATCH] refs #17063 [master] sort hierarchy children naturally

---
 .../TreeDataFormatter/NoCollections.php       | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/module/finc/src/finc/Hierarchy/TreeDataFormatter/NoCollections.php b/module/finc/src/finc/Hierarchy/TreeDataFormatter/NoCollections.php
index 5d1fbf8a353..f3a54bc1421 100644
--- a/module/finc/src/finc/Hierarchy/TreeDataFormatter/NoCollections.php
+++ b/module/finc/src/finc/Hierarchy/TreeDataFormatter/NoCollections.php
@@ -64,4 +64,29 @@ class NoCollections extends \VuFind\Hierarchy\TreeDataFormatter\Json
         }
         return parent::pickTitle($record, $parentID);
     }
+
+
+    /**
+     * Sort Nodes
+     * Convert an unsorted array of [ key, value ] pairs into a sorted array
+     * of values.
+     *
+     * @param array $array The array of arrays to sort
+     *
+     * @return array
+     */
+    protected function sortNodes($array)
+    {
+        // Sort arrays based on first element
+        $sorter = function ($a, $b) {
+            return strnatcmp($a[0], $b[0]);
+        };
+        usort($array, $sorter);
+
+        // Collapse array to remove sort values
+        $mapper = function ($i) {
+            return $i[1];
+        };
+        return array_map($mapper, $array);
+    }
 }
-- 
GitLab