diff --git a/application/forms/Navigation/NavigationConfigForm.php b/application/forms/Navigation/NavigationConfigForm.php index 661e66a64..e36f66b50 100644 --- a/application/forms/Navigation/NavigationConfigForm.php +++ b/application/forms/Navigation/NavigationConfigForm.php @@ -349,15 +349,26 @@ class NavigationConfigForm extends ConfigForm $shared = true; } + $oldName = null; if (isset($data['name'])) { if ($data['name'] !== $name) { $config->removeSection($name); + $oldName = $name; $name = $data['name']; } unset($data['name']); } + if ($oldName) { + // Update the parent name on all direct children + foreach ($config as $sectionConfig) { + if ($sectionConfig->parent === $oldName) { + $sectionConfig->parent = $name; + } + } + } + $itemConfig->merge($data); foreach ($itemConfig->toArray() as $k => $v) { if ($v === null) {