关于 umbraco-entity-create-option-action
用于实现 Umbraco 后台实体创建选项操作的技能。它指导开发者查阅最新文档,并生成清单和操作类,以支持执行逻辑、打开模态框或导航的创建选项。
主要功能
- 01创建选项操作清单
- 02操作类代码框架
- 03基于模态框的选项
- 04基于导航的选项
- 05查阅最新文档的指引
适用场景
- 01为实体添加其他创建路径
- 02从创建选项打开模态框
- 03导航到自定义创建视图
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-entity-create-option-action安装后在 Claude Code 中输入/umbraco-entity-create-option-action确认已加载。
详细介绍
Umbraco 实体创建选项操作
这是什么?
实体创建选项操作会在创建实体时添加可自定义的选项。选择“创建”实体操作时,这些选项会显示在创建选项对话框中,用户可以在不同的创建方式或路径之间进行选择。这种机制支持扩展,其他开发者可以为现有工作流添加自己的创建选项。
文档
实施前,请务必获取最新文档:
- 主要文档:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-create-option-action
- 实体操作:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-actions
- 基础: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-modals
- 参考技能:
-
路由:创建选项会导航到其他视图时
- 参考技能:
umbraco-routing
- 参考技能:
工作流
- 获取文档 - 对上述 URL 使用 WebFetch
- 提问 - 实体类型是什么?需要哪些创建选项?选择选项后会发生什么?
- 生成文件 - 根据最新文档创建清单和操作类
- 说明 - 展示已创建的内容以及测试方法
最小示例
清单(manifests.ts)
import type { ManifestEntityCreateOptionAction } from '@umbraco-cms/backoffice/extension-registry';
const manifest: ManifestEntityCreateOptionAction = {
type: 'entityCreateOptionAction',
alias: 'My.EntityCreateOptionAction',
name: 'My Create Option',
weight: 100,
api: () => import('./my-create-option-action.js'),
forEntityTypes: ['user'],
meta: {
icon: 'icon-add',
label: 'Create with Template',
additionalOptions: false,
},
};
export const manifests = [manifest];
操作实现(my-create-option-action.ts)
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity-create-option-action';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class MyCreateOptionAction extends UmbEntityCreateOptionActionBase {
constructor(host: UmbControllerHost, args: { unique: string | null; entityType: string }) {
super(host, args);
}
override async execute() {
// Perform custom creation logic
console.log('Creating with custom option for entity type:', this.entityType);
// Could open a modal, navigate somewhere, or perform API calls
alert('Custom create option executed!');
}
}
export default MyCreateOptionAction;
带模态框的创建选项
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity-create-option-action';
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
export class MyCreateOptionAction extends UmbEntityCreateOptionActionBase {
override async execute() {
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
const modal = modalManager.open(this, MY_CREATE_MODAL, {
data: {
entityType: this.entityType,
parentUnique: this.unique,
},
});
await modal.onSubmit();
}
}
带导航的创建选项
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity-create-option-action';
export class MyCreateOptionAction extends UmbEntityCreateOptionActionBase {
override async getHref() {
// Return a URL to navigate to instead of execute()
return `/section/my-section/workspace/my-workspace/create/${this.unique}`;
}
override async execute() {
// Not called when getHref() returns a value
}
}
元属性
icon- 要为选项显示的图标label- 选项的显示标签additionalOptions- 如果为 true,则作为次要/附加选项显示
就是这样!务必获取最新文档,保持示例简洁,并生成完整可运行的代码。
评论
支持 Markdown