Orchard CMS中的管理本地导航选项卡

时间:2015-01-13 16:15:40

标签: orchardcms orchardcms-1.8

使用INavigationProvider填充管理菜单时,我们可以添加项目并使用LocalNav()方法。这样我们在内容区域中就有了导航标签。

在我的情况下,我有自定义模块,其中列出了特定ContentType的内容项。然后,我可以单击选定的内容项并在里面导航到文档。 在这里,我需要显示包含子文档列表的3个选项卡。

问题是:如何动态创建此标签?

Orchard使用Layout.LocalNavigation区域呈现此标签,其List MenuItem标有LocalNav = true

如何将自己的标签添加到此列表中? (标签href取决于父项ID,例如/admin/MyModule/Index/123/questions,其中123是父文档的ID

谢谢!

1 个答案:

答案 0 :(得分:1)

我无法提供有关从路线获取产品数据的具体建议,但就动态标签而言,我最近出现了类似的情况,这是我如何做到的;基本上,我需要为网站上的每个已安装的文化单独选项卡。

public void GetNavigation(NavigationBuilder builder)
{
var cultures = this.CultureManager.ListCultures().ToList();
builder
.Add(
T("Settings"), 
menu => menu.Add(
    T("Culture Customizations"), 
    "10.0", 
    subMenu =>
    {
        subMenu.LinkToFirstChild(true);
        for (int cultureCounter = 0; cultureCounter < cultures.Count; cultureCounter++)
        {
            var cultureString = cultures[cultureCounter];
            var cultureInfo = CultureInfo.GetCultureInfo(cultureString);
            subMenu.Add(T(cultureInfo.EnglishName), cultureCounter.ToString(CultureInfo.InvariantCulture), item => item.Action("Index", "Admin", new {area = "ProjectName.YourModule", cultureCode = cultureString}).LocalNav(true));
        }
    }));

}