Fixed Clay exception with unknown menu entry in MenuItem shapes

--HG--
branch : dev
This commit is contained in:
Sébastien Ros
2010-10-16 14:37:42 -07:00
parent 93ed1c060f
commit 1e7436a453

View File

@@ -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);