Я не верю, что есть способ сделать это, используя только навигационного провайдера Orchard. Я сделал что-то подобное, но мне пришлось обрабатывать третичный уровень отдельно и самому реализовать пользовательский интерфейс меню из моего собственного контроллера.
Вам все равно нужно будет добавить третий уровень в навигационный провайдер вашего модуля, так как это будет правильно помечать меню LHS и выбор вкладок. Что-то вроде:
namespace Company.MyModule {
public class TileSortAdminMenu : INavigationProvider {
private Localizer T { get; set; }
public string MenuName { get { return "admin"; } }
public void GetNavigation(NavigationBuilder builder) {
builder
.AddImageSet("mymodule")
.Add(T("My Module"), "5", menu => menu
.LinkToFirstChild(true)
.Add(T("Content Item 1"), "1", item => item
.LocalNav()
.LinkToFirstChild(true)
.Add(T("Tab 1"), "1", tab => tab
.LocalNav()
.Action("Index", "MyModuleAdmin", new { area = "Company.MyModule"})
)
.Add(T("Tab 2"), "2", tab => tab
.LocalNav()
.Action("Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})
)
)
.Add(T("Content Item 2"), "2", item => item
.LocalNav()
.LinkToFirstChild(true)
.Add(T("Tab 1"), "1", tab => tab
.LocalNav()
.Action("ContentItem2Tab1", "MyModuleAdmin", new { area = "Company.MyModule"})
)
.Add(T("Tab 2"), "2", tab => tab
.LocalNav()
.Action("ContentItem2Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})
)
)
);
}
}
}
В своем представлении вы можете сохранить стиль Orchard, используя что-то вроде:
<ul class="localmenu localmenu-submenu">
<li class="selected"><a href="@Url.Action("Index", "MyModuleAdmin", new { area = "Company.MyModule"})">Tab 1</a<</li>
<li><a href="@Url.Action("Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})">Tab 2</a></li>
</ul>
Где класс localmenu-submenu
является стилем для ваших собственных настроек стиля, и вы добавляете класс selected
на любую просматриваемую вкладку.
В качестве альтернативы, в зависимости от того, чего вы пытаетесь достичь, вы можете просто реализовать вкладки пользовательского интерфейса jQuery (доступные через манифест ресурса Orchard.jQuery) и просто обновить стиль, чтобы он выглядел как Orchard.
person
justrhysism
schedule
10.12.2013