mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-23 04:43:35 +08:00
Adding Url to the Navigation MenuItem and making use of it in the MainMenu
- giving it a Url property - adding/changing NavigationBuilder Add methods to account for also being able to set the url - updating the MainMenu to be able to add menu items w/ or w/out a Url (based on Is<MenuItem>) --HG-- branch : dev
This commit is contained in:
@@ -3,6 +3,7 @@ using Orchard.ContentManagement;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Core.Navigation.Records;
|
||||
using Orchard.UI.Navigation;
|
||||
using MenuItem=Orchard.Core.Navigation.Models.MenuItem;
|
||||
|
||||
namespace Orchard.Core.Navigation.Services {
|
||||
public class MainMenu : INavigationProvider {
|
||||
@@ -15,13 +16,25 @@ namespace Orchard.Core.Navigation.Services {
|
||||
public string MenuName { get { return "mainmenu"; } }
|
||||
|
||||
public void GetNavigation(NavigationBuilder builder) {
|
||||
IEnumerable<MenuPart> menuParts = _contentManager.Query<MenuPart, MenuPartRecord>().Where(x => x.AddToMainMenu).List();
|
||||
IEnumerable<MenuPart> menuParts = _contentManager.Query<MenuPart, MenuPartRecord>().Where(x => x.OnMainMenu).List();
|
||||
foreach (var menuPart in menuParts) {
|
||||
if (menuPart != null ) {
|
||||
MenuPart part = menuPart;
|
||||
// Add item url.
|
||||
builder.Add(menu => menu
|
||||
.Add(part.MenuText, part.MenuPosition));
|
||||
|
||||
if (part.Is<MenuItem>())
|
||||
builder.Add(menu => menu.Add(part.MenuText, part.MenuPosition, part.As<MenuItem>().Url));
|
||||
else
|
||||
builder.Add(
|
||||
menu =>
|
||||
menu.Add(part.MenuText, part.MenuPosition,
|
||||
nib =>
|
||||
nib.Action(
|
||||
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
|
||||
DisplayRouteValues["action"] as string,
|
||||
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
|
||||
DisplayRouteValues["controller"] as string,
|
||||
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
|
||||
DisplayRouteValues)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user