1. Sitecore Content Hub

外部コンポーネントイベント

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

外部ページコンポーネントを設定して、さまざまなシステムイベントをサブスクライブできます。これらのイベントのいずれかが発生すると、関連するデータがページコンポーネントに渡されます。

エンティティイベント

以下の表はエンティティイベントの一覧です。

  • イベント
  • ENTITY_UPDATED: entity (id) が更新されました。
  • ENTITY_CREATED: entity が生まれます。
  • ENTITY_SAVED: entity (id) は救われた。
  • ENTITY_REFRESHED: entity (id) が刷新されました。
  • ENTITY_DELETED (購読イベント)
    Hub entity (id) が削除された際に外部コンポーネントに通知するためにこのイベントを公開します。
  • ENTITY_DELETED (公開イベント)
    、 entity (id) が削除されたことをContent Hubに通知できます。DefinitionName が必要です。エンティティ id が提供されていない場合、その定義のエンティティを聞いているすべてのコンポーネントに通知されます。Id は任意です。指定されている場合、その特定のエンティティをリスニングしているコンポーネントのみに通知されます。
  • ENTITY_CHANGED: エンティティ(id)の memberName が変更されます。
  • SEARCH_FINISHED捜索完了。
  • SELECTION_CHANGED: 選択が変わります。
  • ANNOTATION_SELECTED注釈 は注釈 のサイドバーで選択されています。
  • ANNOTATION_DESELECTED: 注釈 のサイドバー で注釈が選択外されています。
  • CLOSE_MEDIA_SELECTOR: メディア選択ダイアログは閉じています。

リアルタイムイベント

以下の表はリアルタイムのイベントを示しています。

イベント

トリガー

イベントデータ

realtime (notificationType)

リアルタイムの通知が届きます。

通知パラメータ

以下のデータがイベントに渡されます。

ENTITY_CREATED: { definitionName: string; id?: number; modified?: Date; stopPropagation?: boolean; };

ENTITY_DELETED: { definitionName: string; id?: number; };

ENTITY_SAVED: { id: number; definitionName: string; modified?: Date; };

ENTITY_REFRESHED: { id: number; modified: Date; };

ENTITY_UPDATED: { id: number; definitionName?: string; modified: Date; };

ENTITY_CHANGED: { id: number; type: "systemProperty | property | relation"; memberName: string; value: unknown; };

SEARCH_FINISHED: { searchIdentifier: string; fullText: string; filters: Array; ids: Array; };

SELECTION_CHANGED: { selectionPoolIdentifier: string; subPoolId?: number; action: "add" | "remove" | "clear"; ids?: Array; definitionNames: Array; }

エンティティが保存したイベント

ENTITY_SAVEDイベントを購読するには、以下のコードをご利用ください:

const onEntitySaved = (evt: Event): void => { const { definitionName, id } = (evt as CustomEvent<{ definitionName: string; id: number }>).detail;

alert(`Entity with id ${id} and definition ${definitionName} was saved`); };

window.addEventListener("ENTITY_SAVED", onEntitySaved);

エンティティが変更されたイベント

ENTITY_CHANGEDイベント後に受信されるデータのフォーマットは、変更されたデータの種類によって異なります。例えば、システムプロパティが変更された場合、受信したデータは以下の形式になります。

{ id: number; type: "systemProperty", memberName: string; value: unknown; }

通常のプロパティが変更された場合、受信されるデータは以下の形式になります。

{ id: number; type: "property", memberName: string; value: unknown; }

allow_navigation有効の関係が変わった場合、受信されるデータは以下の形式となります。

{ id: number; type: "relation", memberName: string; value: Array; allowNavigation: true; role?: "Parent" | "Child" | undefined; }

allow_navigationとの関係が無効化された場合、受信されるデータは以下の形式になります。

{ id: number; type: "relation", memberName: string; allowNavigation: false; role?: "Parent" | "Child" | undefined; }

SEARCH_FINISHEDイベントを監視する際は、getEventSearchIdentifier法を使ってsearchIdentifierとイベントのものを比較します。

const onSearchFinished = (evt: Event): void => { const { filters, searchIdentifier: eventSearchIdentifier, // We rename the property to eventSearchIdentifier. fullText, } = ( evt as CustomEvent<{ searchIdentifier: string; fullText: string; filters: Array; ids: Array; }> ).detail;

// We check if the searchIdentifier on the event is the one we are interested in. if ( eventSearchIdentifier === getEventSearchIdentifier(searchIdentifier) ) { setAppliedSearchFilters(filters); setFullTextFilterValue(fullText); } };

window.addEventListener("SEARCH_FINISHED", onSearchFinished);

!注Reactでは、外部コンポーネントがレンダリングされる時点でエンティティがすでに読み込まれているため、ENTITY_LOADEDとENTITY_UNLOADEDイベントは不要になります。最初の初期化はレンダリングメソッドではなく、コードのルート上で行うことを推奨します。そうでなければ、初期化ロジックが不必要に繰り返されます。

この記事を改善するための提案がある場合は、 お知らせください!