Optionally delete invisible or disabled nodes recursively #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, visible and disabled flags of a node are not noticed for its children in
Tree::getMenuItems()
.Therefore it is currently not possible to "hide" a whole part of a tree from the menu by deactivating the visible flag of a parent node. The parent node itself will disappear from the menu, but its children will still be visible.
This behavior can also lead to strange effects, because children can lose their parent in the tree and appear at an unexpected position in the menu tree.
This PR implements the recursive deletion of a whole subtree from the menu using the visible or disable flag of a parent node in the tree.
The behaviour can be controlled by 3 new module properties:
$menuRemoveInvisibleRecursive
: Whether Tree::getMenuItems() should remove all childs for all invisible nodes from menu tree$menuRemoveDisabledRecursive
: Whether Tree::getMenuItems() should remove all childs for all disabled nodes from menu tree$menuRemoveInvisibleRoot
: Whether Tree::getMenuItems() should return an empty array for invisible root nodesAll 3 properties are set to
false
by default for backward compatibility.