Skip to content

Commit 1b92b7c

Browse files
authored
Merge pull request #62 from vbakke/fix/reorder-by-level
fix: Sort activities by level, within each sub-dimension
2 parents 0bd3516 + e2aeba7 commit 1b92b7c

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

yaml-generation/functions.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,21 @@ function getDimensions($filename = "data/generated/dimensions.yaml") {
136136
return $dimensions;
137137
}
138138

139+
/**
140+
* Sort activities by their 'level' attribute within each subdimension.
141+
* The uasort() is stable, i.e. it will retain the original order, within each level.
142+
*/
143+
function sortActivitiesByLevel($dimensions) {
144+
foreach ($dimensions as $dimension => $subdimensions) {
145+
foreach ($subdimensions as $subdimension => $elements) {
146+
uasort($elements, function($a, $b) {
147+
return ($a['level'] ?? 0) <=> ($b['level'] ?? 0);
148+
});
149+
$dimensions[$dimension][$subdimension] = $elements;
150+
}
151+
}
152+
return $dimensions;
153+
}
139154

140155

141156
/**

yaml-generation/generateDimensions.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
}
1717
$dimensions = array_merge_recursive($dimensions, $dimension);
1818
}
19+
$dimensions = sortActivitiesByLevel($dimensions);
1920

2021
$files = glob("src/assets/YAML/custom/*/*.yaml");
2122
$dimensionsCustom = array();

0 commit comments

Comments
 (0)