【问题标题】:Adding items to the manager menu in Piranha CMS将项目添加到 Piranha CMS 中的管理器菜单
【发布时间】:2014-05-04 09:53:47
【问题描述】:

遵循 PiranhaCMS 2.2.0 文档不会将菜单项插入到管理器菜单中。

我做错了什么?

我已将其放在我的 _AppStart.cshtml

Manager.Menu.Add(new Manager.MenuGroup()
    {
        InternalId = "MyApp",
        Name = "My app",
        CssClass = "fancy-icon"
    });

/* From this point down - also tried placing in _ViewStart.cshtml */
Manager.Menu.Where(m => m.InternalId == "MyApp").Single().Items.Add(
  new Manager.MenuItem() {
    Name = "Products",
    Action = "productlist",
    Controller = "products",
    Permission = "ADMIN_PRODUCT",
    SelectedActions = "productlist,productedit"
  });

Manager.Menu.Where(m => m.InternalId == "MyApp").Single().Items.Add(
  new Manager.MenuItem() {
    Name = "Product groups",
    Action = "productgrouplist",
    Controller = "products",
    Permission = "ADMIN_PRODUCTGROUP",
    SelectedActions = "productgrouplist,productgroupedit"
  });

但是,即使代码被命中,我也可以看到 Manager.Menu 中包含新项目 - 它们不会在管理器菜单中呈现。

我在这里缺少什么?我应该在哪里放置实际的菜单插入?

谢谢。

【问题讨论】:

    标签: piranha-cms


    【解决方案1】:

    上面的代码似乎是从http://piranhacms.org/docs/extend/manager-menu 的示例中复制而来的。如果您查看文档中的最后一段,您会发现在上面的示例中,为新的管理器功能(ADMIN_PRODUCT、ADMIN_PRODUCTGROUP)添加了两个自定义权限

    由于管理器只呈现登录用户可以访问的项目,我只能假设您没有在系统 > 权限下添加这些权限,这导致当前用户没有有权访问它们。由于用户无权访问组中的任何项目,因此整个组都被隐藏了!

    只需从您的项目中删除Permission = "...",它们就会呈现。

    问候

    哈坎

    【讨论】:

    • 太棒了!我误读了文档,我认为 “通过为这两个菜单项指定选定的操作,我们确保正确的操作将在菜单中突出显示。我们还为这两个菜单项添加了新权限我们可以在管理器界面中进行设置。” 它的读取方式我愚蠢地假设如果找不到权限,它会创建权限。谢谢哈坎。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2019-09-09
    • 1970-01-01
    相关资源
    最近更新 更多