nis/silverstripe-grouped-cms-menu

允许您对CMS菜单项进行分组。

3.0.2 2017-11-23 23:57 UTC

README

本模块允许您将CMS菜单项分组为嵌套列表,当鼠标悬停时展开。当CMS菜单项很多导致屏幕空间不足时,这非常有用。

旧版本可通过适当的分支获取。

基本用法

为了将CMS菜单项分组,请在 config.yml 文件中定义您的菜单组。

在下面的示例中,CMSMain(页面)和AssetAdmin(文件和图像)被分组在“内容”标题下。

LeftAndMain:
  menu_groups:
    Content:
      - CMSPagesController
      - AssetAdmin

排序顺序

每个分组菜单中的项将遵循您在YML中设置的顺序。组本身将以0优先级插入到菜单中,其他菜单项将根据它们的现有优先级出现在其上方或下方。您可以通过以下方式更改菜单组的优先级

LeftAndMain:
  menu_groups:
    Other:
      priority: -500
      - ReportAdmin
      - SecurityAdmin

或者,您可以“分组”项目本身,以使任何菜单项遵循您在配置中设置的顺序

LeftAndMain:
  menu_groups:
    CMSPagesController:
      - CMSPagesController
    Other:
      - ReportAdmin
      - AssetAdmin

当您有较大的菜单,以及/或多个模块组合到同一个菜单时,这可能需要更一致的方法。在这种情况下,您可以对分组菜单按字母顺序排序。

LeftAndMain:
  menu_groups:
    CMSPagesController:
      - CMSPagesController
    Other:
      - ReportAdmin
      - AssetAdmin
  menu_groups_alphabetical_sorting: true

分组图标

您可以为组添加CSS类以添加图标。类名将以 'icon-' 为前缀。在下面的示例中,与页面菜单项相同的图标将被用于内容组。

LeftAndMain:
  menu_groups:
    Content:
      icon: 'cmspagescontroller'
      - CMSPagesController
      - AssetAdmin

翻译分组标签

可以通过提供以下翻译键来翻译组标签(以下面的“其他”组为例)

langcode:
  GroupedCmsMenuLabel:
    Other: 'translated text'

如果组标签有空格,则这些空格将被转换为键下的下划线

langcode:
  GroupedCmsMenuLabel:
    Other_Label: 'translated text'

维护者联系方式

要求

  • SilverStripe 3.2+(查看其他分支以获取与旧版本的兼容性信息)

项目链接