PHPackages                             goldfinch/silverstripe-grouped-cms-menu - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. goldfinch/silverstripe-grouped-cms-menu

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

goldfinch/silverstripe-grouped-cms-menu
=======================================

Allows you to group CMS menu items.

4.1.3(2y ago)01.5k↓50%3BSD-3-ClausePHP

Since Nov 14Pushed 2y agoCompare

[ Source](https://github.com/goldfinch/silverstripe-grouped-cms-menu)[ Packagist](https://packagist.org/packages/goldfinch/silverstripe-grouped-cms-menu)[ Docs](https://github.com/goldfinch/silverstripe-grouped-cms-menu)[ RSS](/packages/goldfinch-silverstripe-grouped-cms-menu/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (3)

SilverStripe Grouped CMS Menu
=============================

[](#silverstripe-grouped-cms-menu)

- This is fork of [symbiote/silverstripe-grouped-cms-menu](https://github.com/symbiote/silverstripe-grouped-cms-menu)

This module allows you to group CMS menu items into nested lists which expand when hovered over. This is useful when there are so many CMS menu items that screen space becomes an issue.

Previous versions are available through the appropriate branch.

Basic Usage
-----------

[](#basic-usage)

In order to group CMS menu items together, define your menu groups in a `config.yml` file.

In the example below, CMSMain (Pages) and AssetAdmin (Files &amp; Images) are grouped together under a "Content" heading.

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

Sort order
----------

[](#sort-order)

The items in each grouped menu will follow the order you set in your YML. The groups themselves will be inserted in the menu with a priority of 0, with other menu items appearing above or below depending on their existing priority. You can change the priority of a menu group like this:

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

Or you can "group" items by themselves to make any menu item follow the order you set in your configuration:

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

When you have larger menus, and/or multiple modules combining to the same menu, this may require something more consistent. In which case, you may sort your grouped menus alphabetically.

```
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
```

Group icons
-----------

[](#group-icons)

You can add a CSS class to groups for the purpose of adding an icon. The class name will be prefixed with 'font-icon-'. In the example below the same icon used for the Pages menu item will be used for the Content group:

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

Translating group labels
------------------------

[](#translating-group-labels)

A group label may be translated by providing a translation key as below (using the 'Other' group from above as an example)

```
langcode:
  GroupedCmsMenuLabel:
    Other: 'translated text'

```

If the group label has spaces, these will be converted to underscores for the key

```
langcode:
  GroupedCmsMenuLabel:
    Other_Label: 'translated text'

```

Requirements
------------

[](#requirements)

- SilverStripe 4+ and 5+ (See other branches for compatibility with older versions)

Project Links
-------------

[](#project-links)

- [GitHub Project Page](https://github.com/symbiote/silverstripe-grouped-cms-menu)
- [Issue Tracker](https://github.com/symbiote/silverstripe-grouped-cms-menu/issues)

Credits
-------

[](#credits)

- A massive thanks to Russ Michell ([phptek](https://github.com/phptek)) for upgrading this module to be SS4 compatible!

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Total

3

Last Release

843d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2291826?v=4)[goldfinch](/maintainers/goldfinch)[@goldfinch](https://github.com/goldfinch)

---

Top Contributors

[![nyeholt](https://avatars.githubusercontent.com/u/161730?v=4)](https://github.com/nyeholt "nyeholt (10 commits)")[![goldfinch](https://avatars.githubusercontent.com/u/2291826?v=4)](https://github.com/goldfinch "goldfinch (7 commits)")[![ajshort](https://avatars.githubusercontent.com/u/31570?v=4)](https://github.com/ajshort "ajshort (6 commits)")[![jonom](https://avatars.githubusercontent.com/u/1079425?v=4)](https://github.com/jonom "jonom (4 commits)")[![stevie-mayhew](https://avatars.githubusercontent.com/u/1953220?v=4)](https://github.com/stevie-mayhew "stevie-mayhew (2 commits)")[![sanderha](https://avatars.githubusercontent.com/u/6941043?v=4)](https://github.com/sanderha "sanderha (2 commits)")[![phptek](https://avatars.githubusercontent.com/u/478440?v=4)](https://github.com/phptek "phptek (1 commits)")[![rafaeldsousa](https://avatars.githubusercontent.com/u/39249777?v=4)](https://github.com/rafaeldsousa "rafaeldsousa (1 commits)")[![lozcalver](https://avatars.githubusercontent.com/u/1655548?v=4)](https://github.com/lozcalver "lozcalver (1 commits)")[![stephenmcm](https://avatars.githubusercontent.com/u/2093185?v=4)](https://github.com/stephenmcm "stephenmcm (1 commits)")[![ohararyan](https://avatars.githubusercontent.com/u/1509309?v=4)](https://github.com/ohararyan "ohararyan (1 commits)")

---

Tags

silverstripemenucmsmodulegroupedgroupinggroup

### Embed Badge

![Health badge](/badges/goldfinch-silverstripe-grouped-cms-menu/health.svg)

```
[![Health](https://phpackages.com/badges/goldfinch-silverstripe-grouped-cms-menu/health.svg)](https://phpackages.com/packages/goldfinch-silverstripe-grouped-cms-menu)
```

###  Alternatives

[symbiote/silverstripe-grouped-cms-menu

Allows you to group CMS menu items.

3696.2k6](/packages/symbiote-silverstripe-grouped-cms-menu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
