mcpField
U
umbraco-entity-create-option-action

umbraco-entity-create-option-action

github.com/umbraco開発27392 回インストール6 週間前に更新
リポジトリ

umbraco-entity-create-option-action について

Umbraco バックオフィスのエンティティ作成オプションアクションを実装するためのスキルです。最新ドキュメントの確認から、処理・モーダル表示・画面遷移に対応するマニフェストとアクションクラスの生成までを案内します。

主な機能

  1. 01作成オプションアクションのマニフェスト
  2. 02アクションクラスのひな形
  3. 03モーダルを使うオプション
  4. 04画面遷移を使うオプション
  5. 05最新ドキュメント確認の案内

活用シーン

  1. 01エンティティに別の作成経路を追加
  2. 02作成オプションからモーダルを開く
  3. 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 Entity Create Option Action

これは何ですか?

Entity Create Option Action は、エンティティを作成する際にカスタマイズ可能なオプションを追加します。これらのオプションは、「Create」エンティティアクションが選択されたときに作成オプションダイアログに表示され、ユーザーが異なる作成方法や作成パスを選択できるようにします。これにより、他の開発者が既存のワークフローに独自の作成オプションを追加できる拡張性が実現します。

ドキュメント

実装する前に、常に最新のドキュメントを取得してください:

関連する Foundation スキル

  • モーダル: 作成オプションがモーダルダイアログを開く場合

    • 参照スキル: umbraco-modals
  • ルーティング: 作成オプションが別のビューに遷移する場合

    • 参照スキル: umbraco-routing

ワークフロー

  1. ドキュメントを取得 - 上記の URL に対して WebFetch を使用します
  2. 質問する - どのエンティティタイプですか? どのような作成オプションが必要ですか? 選択時に何が起こりますか?
  3. ファイルを生成 - 最新のドキュメントに基づいてマニフェスト + アクションクラスを作成します
  4. 説明 - 何が作成されたか、およびテスト方法を示します

最小限の例

マニフェスト (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 の場合、二次的/追加のオプションとして表示されます

以上です! 常に最新のドキュメントを取得し、例は最小限に保ち、完全に動作するコードを生成してください。

コメント