summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2021-05-07 15:57:59 +0200
committerSimon Rettberg2021-05-07 15:59:40 +0200
commit6d537f8834b34f312a8d7868438464193e0fb551 (patch)
treeb72b5480ad79476fbbed849640bf467a7319bfb0
parent[baseconfig] Fix AIOOB warning (diff)
downloadslx-admin-6d537f8834b34f312a8d7868438464193e0fb551.tar.gz
slx-admin-6d537f8834b34f312a8d7868438464193e0fb551.tar.xz
slx-admin-6d537f8834b34f312a8d7868438464193e0fb551.zip
[minilinux] Fix: List of used menus was incomplete
-rw-r--r--modules-available/minilinux/inc/minilinux.inc.php9
1 files changed, 3 insertions, 6 deletions
diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php
index fc59d4cf..d64ef080 100644
--- a/modules-available/minilinux/inc/minilinux.inc.php
+++ b/modules-available/minilinux/inc/minilinux.inc.php
@@ -472,6 +472,7 @@ class MiniLinux
WHERE module = 'minilinux'
GROUP BY be.data");
$return = [];
+ $usedMenuIds = [];
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
$data = json_decode($row['data'], true);
if (!isset($data['id']))
@@ -484,20 +485,16 @@ class MiniLinux
'menus' => explode(',', $row['menus']),
'locations' => explode(',', $row['locations']),
];
+ $usedMenuIds = array_merge($usedMenuIds, $new['menus']);
if (isset($return[$id])) {
$return[$id] = array_merge_recursive($return[$id], $new);
} else {
$return[$id] = $new;
}
}
- // Flatten and arrayfy the list of menu ids
- $ids = ArrayUtil::flattenByKey($return, 'menus');
- $ids = array_reduce($ids, function ($carry, $item) {
- return $carry + $item;
- }, []);
// Build id => title map for menus
$res = Database::simpleQuery("SELECT menuid, title FROM serversetup_menu m
- WHERE menuid IN (:menuid)", ['menuid' => $ids]);
+ WHERE menuid IN (:menuid)", ['menuid' => array_unique($usedMenuIds)]);
$menus = [];
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
$menus[$row['menuid']] = $row['title'];