mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Fixed Clay exception with unknown menu entry in MenuItem shapes
--HG-- branch : dev
This commit is contained in:
@@ -30,23 +30,24 @@ namespace Orchard.UI.Navigation {
|
|||||||
var menuItems = _navigationManager.BuildMenu(menuName);
|
var menuItems = _navigationManager.BuildMenu(menuName);
|
||||||
|
|
||||||
var menuShape = _shapeFactory.Menu().MenuName(menuName);
|
var menuShape = _shapeFactory.Menu().MenuName(menuName);
|
||||||
PopulateMenu(_shapeFactory, menuShape, menuItems);
|
PopulateMenu(_shapeFactory, menuShape, menuShape, menuItems);
|
||||||
|
|
||||||
workContext.Layout.Navigation.Add(menuShape);
|
workContext.Layout.Navigation.Add(menuShape);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PopulateMenu(dynamic shapeFactory, dynamic parentShape, IEnumerable<MenuItem> menuItems) {
|
private void PopulateMenu(dynamic shapeFactory, dynamic parentShape, dynamic menu, IEnumerable<MenuItem> menuItems) {
|
||||||
|
|
||||||
foreach (var menuItem in menuItems) {
|
foreach (var menuItem in menuItems) {
|
||||||
var menuItemShape = shapeFactory.MenuItem()
|
var menuItemShape = shapeFactory.MenuItem()
|
||||||
.Text(menuItem.Text)
|
.Text(menuItem.Text)
|
||||||
.Href(menuItem.Href)
|
.Href(menuItem.Href)
|
||||||
.RouteValues(menuItem.RouteValues)
|
.RouteValues(menuItem.RouteValues)
|
||||||
.Item(menuItem)
|
.Item(menuItem)
|
||||||
.Menu(shapeFactory)
|
.Menu(menu)
|
||||||
.Parent(parentShape);
|
.Parent(parentShape);
|
||||||
|
|
||||||
if (menuItem.Items != null && menuItem.Items.Any()) {
|
if (menuItem.Items != null && menuItem.Items.Any()) {
|
||||||
PopulateMenu(shapeFactory, menuItemShape, menuItem.Items);
|
PopulateMenu(shapeFactory, menuItemShape, menu, menuItem.Items);
|
||||||
}
|
}
|
||||||
|
|
||||||
parentShape.Add(menuItemShape, menuItem.Position);
|
parentShape.Add(menuItemShape, menuItem.Position);
|
||||||
|
|||||||
Reference in New Issue
Block a user