goldfinch/silverstripe-grouped-cms-menu

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

安装: 859

依赖项: 3

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 31

类型:silverstripe-vendormodule

4.1.3 2024-01-21 00:44 UTC

This package is auto-updated.

Last update: 2024-09-21 02:12:47 UTC


README

此模块允许您将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!