mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-01-22 21:02:08 +08:00
If MenuPart is a ContentMenuItem, check if the content is published before adding it to the NavigationBuilder. (#8653)
This commit is contained in:
committed by
GitHub
parent
9728831556
commit
7ac17272d2
@@ -23,17 +23,27 @@ namespace Orchard.Core.Navigation.Services {
|
|||||||
if (menuPart != null) {
|
if (menuPart != null) {
|
||||||
var part = menuPart;
|
var part = menuPart;
|
||||||
|
|
||||||
string culture = null;
|
var showItem = true;
|
||||||
// fetch the culture of the content menu item, if any
|
// If the menu item is a ContentMenuItemPart (from Orchard.ContentPicker), check the ContentItem is published.
|
||||||
var localized = part.As<ILocalizableAspect>();
|
// If there is no published version of the ContentItem, the item must not be added to NavigationBuilder.
|
||||||
if (localized != null) {
|
var cmip = ((dynamic)part).ContentMenuItemPart;
|
||||||
culture = localized.Culture;
|
if (cmip != null) {
|
||||||
|
showItem = cmip.Content != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (part.Is<MenuItemPart>())
|
if (showItem) {
|
||||||
builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, item => item.Url(part.As<MenuItemPart>().Url).Content(part).Culture(culture).Permission(Contents.Permissions.ViewContent));
|
string culture = null;
|
||||||
else
|
// fetch the culture of the content menu item, if any
|
||||||
builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, item => item.Action(_contentManager.GetItemMetadata(part.ContentItem).DisplayRouteValues).Content(part).Culture(culture).Permission(Contents.Permissions.ViewContent));
|
var localized = part.As<ILocalizableAspect>();
|
||||||
|
if (localized != null) {
|
||||||
|
culture = localized.Culture;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (part.Is<MenuItemPart>())
|
||||||
|
builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, item => item.Url(part.As<MenuItemPart>().Url).Content(part).Culture(culture).Permission(Contents.Permissions.ViewContent));
|
||||||
|
else
|
||||||
|
builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, item => item.Action(_contentManager.GetItemMetadata(part.ContentItem).DisplayRouteValues).Content(part).Culture(culture).Permission(Contents.Permissions.ViewContent));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user