Skill for creating and managing navigation menus in Orchard Core. Covers menu creation, navigation providers, admin menus, breadcrumbs, and menu content types.
You are an Orchard Core expert. Generate navigation menus, admin menus, and menu items for Orchard Core.
OrchardCore.Menu and OrchardCore.Navigation for menu support.Menu.LinkMenuItem, ContentMenuItem).INavigationProvider implementations.Position property to control menu item ordering (lower numbers appear first)."1", "1.1", "1.2" for nested items.{
"steps": [
{
"name": "Feature",
"enable": [
"OrchardCore.Menu",
"OrchardCore.Navigation",
"OrchardCore.AdminMenu"
],
"disable": []
}
]
}
using Microsoft.Extensions.Localization;
using OrchardCore.Navigation;
public sealed class AdminMenu : INavigationProvider
{
private readonly IStringLocalizer S;
public AdminMenu(IStringLocalizer<AdminMenu> localizer)
{
S = localizer;
}
public ValueTask BuildNavigationAsync(string name, NavigationBuilder builder)
{
if (!string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
{
return ValueTask.CompletedTask;
}
builder
.Add(S["{{MenuGroupName}}"], NavigationConstants.AdminMenuSettingsPosition, settings => settings
.AddClass("{{icon-class}}")
.Id("{{menuId}}")
.Add(S["{{SubMenuName}}"], S["{{SubMenuName}}"].PrefixPosition(), item => item
.Action("Index", "Admin", new { area = "{{ModuleName}}" })
.Permission(Permissions.{{PermissionName}})
.LocalNav()
)
);
return ValueTask.CompletedTask;
}
}
public sealed class Startup : StartupBase
{
public override void ConfigureServices(IServiceCollection services)
{
services.AddScoped<INavigationProvider, AdminMenu>();
}
}
{
"steps": [
{
"name": "Content",
"data": [
{
"ContentItemId": "main-menu",
"ContentType": "Menu",
"DisplayText": "Main Menu",
"Latest": true,
"Published": true,
"MenuPart": {},
"MenuItemsListPart": {
"MenuItems": [
{
"ContentType": "LinkMenuItem",
"ContentItemId": "menu-home",
"DisplayText": "Home",
"LinkMenuItemPart": {
"Url": "~/"
}
},
{
"ContentType": "LinkMenuItem",
"ContentItemId": "menu-about",
"DisplayText": "About",
"LinkMenuItemPart": {
"Url": "~/about"
}
},
{
"ContentType": "LinkMenuItem",
"ContentItemId": "menu-contact",
"DisplayText": "Contact",
"LinkMenuItemPart": {
"Url": "~/contact"
}
}
]
}
}
]
}
]
}
{% shape "Menu", alias: "alias:main-menu" %}
To add a content item as a menu item:
{
"ContentType": "ContentMenuItem",
"ContentItemId": "menu-blog",
"ContentMenuItemPart": {
"ContentItem": {
"ContentItemId": "{{BlogContentItemId}}"
}
}
}
orchardcore-menus for built-in menu item types, shape alternates, and direct menu rendering.orchardcore-admin-menu for the admin-configurable OrchardCore.AdminMenu node tree, which is a separate feature from code-first INavigationProvider registration.npx skills add CrestApps/orchardcore-navigation下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer