PHPackages                             dnadesign/silverstripe-setmenu - 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. dnadesign/silverstripe-setmenu

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

dnadesign/silverstripe-setmenu
==============================

A SilverStripe module for managing configurable and orderable menu sets.

4.0.0(1mo ago)0632↓22.2%BSD-3-ClausePHPPHP ^8.1

Since Mar 26Pushed 1mo ago5 watchersCompare

[ Source](https://github.com/dnadesign/silverstripe-setmenu)[ Packagist](https://packagist.org/packages/dnadesign/silverstripe-setmenu)[ RSS](/packages/dnadesign-silverstripe-setmenu/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (3)Dependencies (6)Versions (10)Used By (0)

Silverstripe Set Menu
=====================

[](#silverstripe-set-menu)

A Silverstripe module to define menu sets for different purposes.

Credit
------

[](#credit)

This module was inspired by the following modules, but modified for our tastes:

- [heyday/silverstripe-menumanager](https://github.com/heyday/silverstripe-menumanager)
- [guttmann/silverstripe-menumanager-subsites](https://github.com/guttmann/silverstripe-menumanager-subsites)

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

[](#requirements)

This module is baked for Silverstripe 5 and Php 8

Installation
------------

[](#installation)

`composer require dnadesign/silverstripe-setmenu`

Configuration
-------------

[](#configuration)

Define the **MenuSet**s and the group they belong to in .yml configuration by setting `default_sets`.

- *Key*: Initial name of the **MenuSet**.
- *Value*: Group the **MenuSet** belongs to.

```
DNADesign\SetMenu\Model\MenuSet:
  default_sets:
    Main nav: Main
    Main footer: Footer
    Secondary footer: Footer

```

Additionally, subsite menusets can be configured. Currently the mechanism to do this is to match the theme name to the menu definition. This would also require a template to be copied to the subsite theme to override it and make use of the different menu sets. i.e.

```
DNADesign\SetMenu\Model\MenuSet:
  default_sets:
    Main nav: Main
    Main footer: Footer
  subsitetheme:
    Primary: Main
    Auxilliary: Secondary

```

On `/dev/build` they will be created automatically.

Migration from MenuManager
--------------------------

[](#migration-from-menumanager)

The classes in this module are namespaced, and the table names are plural, so this module is able to be installed without removing MenuManager first.

The intent for this is to allow a migration from MenuManager to Set Menu other by first deploying the module, creating the menus in the production environment, then later, deploying the template changes.

This avoids a state where the content must be hurriedly created after deployment.

Usage
-----

[](#usage)

Use the `$MenuType('Name')` template function to retrieve the MenuSet DataList:

```

    $Name

            {$Title}

```

Permissions
-----------

[](#permissions)

In `/admin/security/`, add the *Access to 'Menus' section* and *Manage Menus* permissions to a group to view and edit the menu objects.

Subsites
--------

[](#subsites)

This module is configured to operate with or without the Subsites module.

Tasks
-----

[](#tasks)

The module comes with a task to truncate the **MenuSet**s, which may be helpful for development purposes. This can be enabled on PROD if required.

```
DNADesign\SetMenu\Model\MenuSet:
  prod_truncate_permission: true

```

TODO
----

[](#todo)

- Currently, when using Subsites, the same **MenuSet**s will be created for each subsite.
    - Update the configuration documentation and `requireDefaultRecords()` functionality in `MenuSetSubsiteExtension` to allow different configuration per Subsite.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance89

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

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 ~226 days

Total

6

Last Release

55d ago

Major Versions

1.0.0 → 2.0.02023-10-29

2.2.0 → 3.0.02025-03-31

3.0.0 → 4.0.02026-04-30

PHP version history (2 changes)1.0.0PHP ^8

3.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/efd88fa106982bcf2e3cd689e6a37d352c54308d14dedeac4ac477a47a432363?d=identicon)[DNADesign](/maintainers/DNADesign)

---

Top Contributors

[![lukereative](https://avatars.githubusercontent.com/u/1415622?v=4)](https://github.com/lukereative "lukereative (5 commits)")[![Cambis](https://avatars.githubusercontent.com/u/12287346?v=4)](https://github.com/Cambis "Cambis (2 commits)")[![jules0x](https://avatars.githubusercontent.com/u/8979741?v=4)](https://github.com/jules0x "jules0x (2 commits)")[![djmattski](https://avatars.githubusercontent.com/u/3836638?v=4)](https://github.com/djmattski "djmattski (1 commits)")

### Embed Badge

![Health badge](/badges/dnadesign-silverstripe-setmenu/health.svg)

```
[![Health](https://phpackages.com/badges/dnadesign-silverstripe-setmenu/health.svg)](https://phpackages.com/packages/dnadesign-silverstripe-setmenu)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M83](/packages/silverstripe-userforms)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46299.9k9](/packages/symbiote-silverstripe-advancedworkflow)[silverstripe/sharedraftcontent

Share draft page content with non-CMS users

21419.6k11](/packages/silverstripe-sharedraftcontent)

PHPackages © 2026

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