r2191 - sort the IPv4 tree like it's already done for tags
[racktables] / inc / functions.php
index 6365915..3267e89 100644 (file)
@@ -1407,14 +1407,23 @@ function taginfoCmp ($tagA, $tagB)
        return $tagA['ci'] - $tagB['ci'];
 }
 
+// Compare networks. When sorting a tree, the records on the list will have
+// distinct base IP addresses.
+function IPv4NetworkCmp ($netA, $netB)
+{
+       return $netA['db_first'] - $netB['db_first'];
+}
+
 // Modify the given tag tree so, that each level's items are sorted alphabetically.
-function sortTagTree (&$tree)
+function sortTree (&$tree, $sortfunc = '')
 {
-       usort ($tree, 'taginfoCmp');
+       if (empty ($sortfunc))
+               return;
+       usort ($tree, $sortfunc);
        // Don't make a mistake of directly iterating over the items of current level, because this way
        // the sorting will be performed on a _copy_ if each item, not the item itself.
        foreach (array_keys ($tree) as $tagid)
-               sortTagTree ($tree[$tagid]['kids']);
+               sortTree ($tree[$tagid]['kids'], $sortfunc);
 }
 
 ?>