dnadesign / silverstripe-setmenu
一个用于管理可配置和可排序菜单集的 SilverStripe 模块。
2.0.0
2023-10-29 22:24 UTC
Requires
- php: ^8
- silverstripe/cms: ^5
- symbiote/silverstripe-gridfieldextensions: ^4
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()
功能,以允许每个子站点有不同的配置。
- 更新配置文档和