承接 dnadesign/silverstripe-setmenu 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dnadesign/silverstripe-setmenu

最新稳定版本:3.0.0

Composer 安装命令:

composer require dnadesign/silverstripe-setmenu

包简介

A SilverStripe module for managing configurable and orderable menu sets.

README 文档

README

A Silverstripe module to define menu sets for different purposes.

Credit

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

Requirements

This module is baked for Silverstripe 5 and Php 8

Installation

composer require dnadesign/silverstripe-setmenu

Configuration

Define the MenuSets 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

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

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

<% loop $MenuType('Footer') %>
    <p>$Name</p>
    <% loop $MenuItems %>
        <a href="{$Link}" class="{$LinkingMode}"
            <% if $NewWindow %>
                target="_blank"
                rel="noopener"
            <% end_if %>
        >
            {$Title}
        </a>
    <% end_loop %>
<% end_loop %>

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

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

Tasks

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

DNADesign\SetMenu\Model\MenuSet:
  prod_truncate_permission: true

TODO

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

统计信息

  • 总下载量: 460
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 5
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2024-04-01