symbiote/silverstripe-grouped-cms-menu

允许您分组CMS菜单项。

安装量: 75,478

依赖: 7

建议者: 3

安全: 0

星标: 35

关注者: 10

分支: 31

开放问题: 9

类型:silverstripe-vendormodule

4.1.0 2023-05-19 01:11 UTC

README

此模块允许您将CMS菜单项分组到嵌套列表中,当鼠标悬停时展开。当有太多CMS菜单项而导致屏幕空间成为问题时,这非常有用。

旧版本可通过相应的分支获取。

基本用法

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

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

SilverStripe\Admin\LeftAndMain:
  menu_groups:
    Content:
      children:
        - SilverStripe-CMS-Controllers-CMSPagesController
        - SilverStripe-AssetAdmin-Controller-AssetAdmin

排序顺序

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

SilverStripe\Admin\LeftAndMain:
  menu_groups:
    Other:
      priority: -500
      children:
        - SilverStripe-Reports-ReportAdmin
        - SilverStripe-Admin-SecurityAdmin

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

SilverStripe\Admin\LeftAndMain:
  menu_groups:
    SilverStripe\CMS\Controllers\CMSPagesController:
      children:
        - SilverStripe-CMS-Controllers-CMSPagesController
    Other:
      children:
        - SilverStripe-Reports-ReportAdmin
        - SilverStripe-Admin-SecurityAdmin

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

SilverStripe\Admin\LeftAndMain:
  menu_groups:
    SilverStripe\CMS\Controllers\CMSPagesController:
      children:
        - SilverStripe-CMS-Controllers-CMSPagesController
    Other:
      children:
        - SilverStripe-Reports-ReportAdmin
        - SilverStripe-Admin-SecurityAdmin
  menu_groups_alphabetical_sorting: true

分组图标

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

SilverStripe\Admin\LeftAndMain:
  menu_groups:
    Content:
      icon: 'sitemap'
      children:
        - SilverStripe-CMS-Controllers-CMSPagesController
        - SilverStripe-AssetAdmin-Controller-AssetAdmin;

翻译组标签

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

langcode:
  GroupedCmsMenuLabel:
    Other: 'translated text'

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

langcode:
  GroupedCmsMenuLabel:
    Other_Label: 'translated text'

要求

  • SilverStripe 4+ 和 5+(有关与其他旧版本兼容性的信息,请参阅其他分支)

项目链接

致谢

  • 非常感谢Russ Michell(《phptek》)将该模块升级为与SS4兼容!