dnadesign/silverstripe-setmenu

一个用于管理可配置和可排序菜单集的 SilverStripe 模块。

安装: 12

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 6

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

2.0.0 2023-10-29 22:24 UTC

This package is auto-updated.

Last update: 2024-08-31 00:36:16 UTC


README

一个用于定义不同目的菜单集的 Silverstripe 模块。

致谢

此模块受到了以下模块的启发,但根据我们的喜好进行了修改

要求

此模块是为 Silverstripe 4 和 Php 8 设计的。

安装

由于此模块尚未在 Packagist 上发布,因此请通过将模块包含在您的 composer.json 中并定义存储库来安装它。

    "require": {
        "dnadesign/silverstripe-setmenu": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/dnadesign/silverstripe-setmenu.git"
        }
    ],

配置

通过在 .yml 配置文件中设置 default_sets 来定义 MenuSet 及其所属的组。

  • MenuSet 的初始名称。
  • MenuSet 所属的组。
DNADesign\SetMenu\Model\MenuSet:
  default_sets:
    Main nav: Main
    Main footer: Footer
    Secondary footer: Footer
    Auxilliary Footer: Footer

/dev/build 时它们将自动创建。

从 MenuManager 迁移

此模块中的类是命名空间化的,表名是复数形式,因此可以在不先删除 MenuManager 的情况下安装此模块。

这样做的目的是允许首先部署模块,在生产环境中创建菜单,然后稍后部署模板更改,从而实现从 MenuManager 迁移到 Set Menu。

这避免了在部署后必须匆忙创建内容的状态。

用法

使用 $MenuType('Name') 模板函数检索 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 %>

权限

/admin/security/ 中,向一个组添加 访问 '菜单' 部分管理菜单 权限,以查看和编辑菜单对象。

子站点

此模块配置为与或没有 Subsites 模块一起运行。

任务

该模块包含一个用于截断 MenuSet 的任务,这对于开发目的可能很有帮助。如果需要,可以在 PROD 上启用此功能。

DNADesign\SetMenu\Model\MenuSet:
  prod_truncate_permission: true

待办事项

  • 目前,当使用子站点时,将为每个子站点创建相同的 MenuSet
    • 更新配置文档和 MenuSetSubsiteExtension 中的 requireDefaultRecords() 功能,以允许每个子站点有不同的配置。