关于 umbraco-sections
介绍如何创建 Umbraco 后台的自定义顶级导航区域,并指导开发者配置清单、仪表板、侧边栏、路由及用户组权限,附有文档和源码示例参考。
主要功能
- 01Section 清单配置指引
- 02仪表板与侧边栏模式
- 03路由和可见性参考
- 04用户组权限配置步骤
- 05文档与源码示例链接
适用场景
- 01添加自定义后台 Section
- 02规划仪表板或 Section 侧边栏
- 03为用户组配置 Section 访问权限
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-sections安装后在 Claude Code 中输入/umbraco-sections确认已加载。
详细介绍
Umbraco 区域
什么是区域?
区域是 Umbraco 后台中顶层导航项,与“内容”“媒体”和“设置”等默认选项并列显示。它们是自定义内容和功能的入口,可作为空白画布,通过仪表板、侧边栏和区域视图进行扩展。用户组需要配置相应权限才能访问区域。
文档
实现前始终获取最新文档:
- 主要文档:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section
- 区域视图:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section-view
- 区域侧边栏:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section-sidebar
- 仪表板:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/dashboard
- 基础:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- 扩展注册表:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
参考示例
Umbraco 源代码中包含一个可运行的示例:
位置:/Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/section-sidebar-menu-expansion/
此示例演示了区域侧边栏菜单的展开模式。研究此示例以了解如何自定义侧边栏。
相关基础技能
实现区域时,如果需要解释以下基础概念,请参考这些技能:
-
上下文 API:实现区域上下文,或说明区域扩展之间如何通信时
- 参考技能:
umbraco-context-api
- 参考技能:
-
条件:实现权限、用户组访问、可见性控制或区域限制时
- 参考技能:
umbraco-conditions
- 参考技能:
-
路由:实现路径名、导航模式、URL 或区域路由时
- 参考技能:
umbraco-routing
- 参考技能:
工作流
- 获取文档 - 对上述 URL 使用 WebFetch
- 提问 - 区域将包含什么?仪表板?树?是否需要侧边栏?
- 生成文件 - 根据最新文档,为区域及相关扩展创建清单
- 说明 - 展示创建的内容以及如何配置权限
最简示例
基本区域(umbraco-package.json)
{
"type": "section",
"alias": "My.Section",
"name": "My Section",
"meta": {
"label": "My Section",
"pathname": "my-section"
}
}
带图标的区域(manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.CustomSection",
name: "Custom Section",
meta: {
label: "Custom",
pathname: "custom-section"
},
conditions: [
{
alias: "Umb.Condition.SectionUserPermission",
match: "My.CustomSection"
}
]
}
];
带仪表板的区域(manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.Section",
name: "My Section",
meta: {
label: "My Section",
pathname: "my-section"
}
},
{
type: "dashboard",
alias: "My.Section.Dashboard",
name: "My Section Dashboard",
element: () => import('./dashboard.element.js'),
meta: {
label: "Welcome",
pathname: "welcome"
},
conditions: [
{
alias: "Umb.Condition.SectionAlias",
match: "My.Section"
}
]
}
];
带侧边栏的区域(manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.Section",
name: "My Section",
meta: {
label: "My Section",
pathname: "my-section"
}
},
{
type: "sectionSidebarApp",
alias: "My.Section.Sidebar",
name: "My Section Sidebar",
element: () => import('./sidebar.element.js'),
conditions: [
{
alias: "Umb.Condition.SectionAlias",
match: "My.Section"
}
]
}
];
关键属性
- type:始终为
"section" - alias:区域的唯一标识符
- name:后台中显示的名称
- meta.label:导航中显示的标签
- meta.pathname:区域的 URL 路径
- element:可选的自定义元素(不推荐,建议改用仪表板)
- conditions:控制可见性和访问权限
授予权限
要允许用户使用自定义区域:
- 在 Umbraco 后台中导航到 Users 区域
- 选择 User Groups 菜单项
- 选择要配置的用户组
- 点击“区域”下方的 Choose 按钮
- 选择你的自定义区域
- 保存更改
内置区域
- Umb.Section.Content - 内容管理
- Umb.Section.Media - 媒体库
- Umb.Section.Settings - 系统设置
- Umb.Section.Packages - 包管理
- Umb.Section.Users - 用户管理
- Umb.Section.Members - 成员管理
就这样!始终获取最新文档,保持示例简洁,并生成完整、可运行的代码。
评论
支持 Markdown