plato-creative/silverstripe-menu

Adds multiple menus that are defined via yml and managed via the cms.

Fund package maintenance!
Ko Fi

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 16

Type:silverstripe-vendormodule

2.0.1 2023-04-04 22:33 UTC

This package is auto-updated.

Last update: 2024-04-05 03:17:41 UTC


README

Adds multiple menus that are defined via yml and managed via the cms.

Installation

Composer is the recommended way of installing SilverStripe modules.

composer require plato-creative/silverstripe-menu

Requirements

Maintainers

Creating custom menus

As it is common to reference MenuSets by slug in templates, you can configure sets to be created automatically during the /dev/build task. These sets cannot be deleted through the CMS.

gorriecoe\Menu\Models\MenuSet:
  sets:
    main: Main menu
    secondary: Another menu

Nested and flat menus

By default menus will be flat, which means links can not have child links associated with them. If you need a nested menu structure, you can do so by adding allow_children: true to the yml file as shown below.

gorriecoe\Menu\Models\MenuSet:
  sets:
    footer:
      title: Footer menu
      allow_children: true

Adding links to menus

Once you have created your menus you can add links in the admin area. The fields are inherited from silverstripe link.

Automatically add links from sitetree to specific menus

If you need to automatically add links to a menu after the creation of a page, you can do so by adding the following extension to page and defining owns_menu.

Page:
  extensions:
    - gorriecoe\Menu\Extensions\SiteTreeAutoCreateExtension
  owns_menu:
    - main
    - footer

Usage in template

<ul>
    <% loop MenuSet('footer') %>
        <li>
            {$Me}
        </li>
    <% end_loop %>
</ul>

See silverstripe link for more template options.