グローバル・プロパティ、ツールバーおよびメニュー・バーのカスタマイズこの章では、グローバル構成エレメントであるUI/Config/GlobalHtmlについて説明します。Contributorインタフェースに対して定義した機能をカスタマイズする方法についても示します。この章は、次の項が含まれています。グローバル構成プロパティのカスタマイズグローバル構成プロパティは、コンテンツ管理サイト全体にContributorインタフェースの表示条件を設定するために使用します。この項の内容は、次のとおりです。構成プロパティの概要クライアント側のフレームワークにより、サーバー側のコントローラ・エレメントUI/Config/GlobalHtmlからその主要な構成設定が取得されます。このプレゼンテーション・エレメントは、起動時にクライアント側アプリケーションで実行される、JavaScriptコードを提供します。JavaScriptコードはJavaScript関数を定義し、その名前がクライアント側アプリケーションによってリクエスト・パラメータとして指定されます。merge}</cs:ftcs>configオブジェクトには、クライアント側アプリケーションが期待するプロパティを設定することにより、関数本体で自由に操作できます。次に説明するように、クライアント側アプリケーションはサーバー側から追加の構成プロパティを取得できるため、複数の場所にグローバル・プロパティを重複させることなく、複数のソースから設定をマージできます。表66-1は、システム定義の構成プロパティについて説明し、どのプロパティが変更可能であるかを示しています。値および例maxTabCount同時に開いたままにできるタブの最大数。タブとは、開かれたアセットのタブのことです。30;enableContextMenuユーザーがWebモードで作業する場合に、デフォルトのブラウザ・コンテキスト(右クリック)メニューを有効にする必要があるかどうかを示します。true;enableWebModeWebモードを有効にする必要があるかどうかを示します。このプロパティをfalseに設定すると、フォーム・モードでのみアセットが操作可能になり、プレビュー機能が使用できます。デフォルトでは、このプロパティは、futuretense_xcel.iniにあるxcelerate.enableinsiteプロパティの値をとります。true;enableDatePreview日付ベースのプレビューを有効にする必要があるかどうかを示します。デフォルトでは、このプロパティは、futuretense_xcel.iniにあるcs.sitepreviewプロパティの値をとります。false;enablePreviewプレビューが許可されるかどうかを示します。「管理」タブを選択して「サイト」を開き、「SampleSite」をダブルクリックして「編集」を選択します)。true;defaultViewアセットを使用するための優先ビューを定義します(たとえば、アセットがデフォルトでは、フォーム・モードまたはWebモードのどちらで表示されるかなど)。アセットはデフォルト・テンプレートに関連付けられている場合にのみ、Webモードで開かれます。予想される値は次のいずれかです。"web"assetTypeは有効なアセット・タイプ名で、subtypeは有効なサブタイプまたは定義名です。"web"}toolbarsビューのタイプごとに、このプロパティは、使用可能なツールバー・アクションのリストを定義します。第66.2項「ツールバーのカスタマイズ」を参照してください。toolbarButtons特定のツールバー・ボタンの動作の定義に使用します。第66.2.2.3項「カスタム・アクションを使用したツールバーのカスタマイズ」を参照してください。menubarメニュー・バーで使用可能なアクションのリストを定義します。第66.3項「メニュー・バーのカスタマイズ」を参照してください。documentsドキュメントの使用可能な実装を登録します。このプロパティの値は変更しないでください。サポートされる値はassetのみです。viewsビューの実装を登録します。このプロパティの値は変更しないでください。controllersコントローラの実装、および各コントローラでサポートされるアクションのセットを登録します。このプロパティの値は変更しないでください。roles現在ログインしているユーザーのロールのリストが含まれます。このプロパティの値は変更しないでください。supportedTypesContributorインタフェースから編集可能なアセット・タイプのリストが含まれます。このプロパティの値は変更しないでください。searchableTypesContributorインタフェースから検索可能なアセット・タイプのリストが含まれます。このプロパティの値は変更しないでください。tokenバイナリ・ファイルをアップロードする際のセキュリティ保護に使用します。このプロパティの値は変更しないでください。sessionidバイナリ・ファイルをアップロードする際のセキュリティ保護に使用します。このプロパティの値は変更しないでください。contextMenusコンテキスト・メニューで使用可能なアクションのリストを定義します。第66.4項「コンテキスト・メニューのカスタマイズ」を参照してください。カスタム構成プロパティの追加UI/Config/GlobalHtmlに格納されているグローパル・プロパティを取得するほかに、Contributorアプリケーションは、UI/Config/SiteConfigの追加設定およびUI/Configに存在するエレメントを取得しようとします。要件によっては、UI/Config/GlobalHtmlに定義されているすべてのプロパティをレプリケートせずに、グローパル・プロパティまたはサイト固有のプロパティを設定できます。この項の内容は、次のとおりです。カスタム・グローバル・プロパティの追加カスタム・グローバル・プロパティは、指定されたコンテンツ管理システム上のすべてのサイトで共有されます。推奨されるアプローチは、次のように定義されたカスタム構成エレメントを作成することです。プレゼンテーション・エレメント名は、UI/Config/SiteConfigHtmlである必要があります。エレメント・コードは、第66.1.1項「構成プロパティの概要」に示すパターンに従う必要があります。次の操作を実行します。すべてのサイトのmaxTabCountの値をオーバーライドします。ページ・アセットのデフォルト・ビューをオーバーライドします。fooという追加のカスタム・プロパティを定義します。そのためには、次のコードを含む、CustomElements/UI/Config/SiteConfigHtmlというエレメントを作成できます。サイト固有のプロパティの追加Contributorインタフェースは、コンテンツ管理サイトごとに異なる方法で構成する必要がある場合があります。推奨されるアプローチは、次のようなエレメントを作成して、UI/Config/SiteConfigというコア・コントローラ・エレメントをオーバーライドすることです。CustomElements/siteName/UI/Config/SiteConfigHtmlここで、siteNameは、コンテンツ管理サイトの名前です(avisportsなど)。avisportsデモ・サイトでは、PageおよびAVIArticleアセット・タイプに対してデフォルト・モードとしてWebモードが実行されます。これは、JSPエレメントCustomElements/avisports/UI/Config/SiteConfigHtmlを定義し、次の設定を提供することによって実行されます。"web";}</cs:ftcs>構成エレメントのロードグローバル構成エレメントは常に最初にロードされます。追加の構成エレメントは、アルファベット順にロードされます。前述の例を使用すると、構成プロパティは次の順序でロードされます。UI/Config/GlobalHtmlUI/Config/SiteConfigHtmlプロパティ値ある場合、一部のプロパティの値はオブジェクトになります。123};このプロパティを部分的にオーバーライドする場合、次の2つのタイプのコードの違いを見極める必要があります。3456;最初のコードでは、プロパティfooが未定義としてオーバーライドされますが、2番目のコードでは、fooの元の値が保持されます。ツールバーのカスタマイズツールバーは、Webモードまたはフォーム・モードのアセット上で動作するアクションをリストするようにカスタマイズできます。ツールバーは、アセット・タイプおよびサブタイプごとに詳細にカスタマイズできます。この項の内容は、次のとおりです。ツールバー・カスタマイズの概要グローバル構成エレメント(UI/Config/GlobalHtml)は、各ビュー・タイプ(Webモード調査、Webモード編集、フォーム・モード編集、フォーム・モード調査など)について、ツールバーで表示されるアクションのリストを示します。これは、toolbarsプロパティで行えます。その値は、次の構文を持つオブジェクトです。...}ここで:viewAliasは、このツールバーをどのビュー・タイプで使用する必要があるかを示します。別名は、config.viewsセクションで定義されるビューの別名のいずれかに一致する必要があります。action_iはアクション名です。save、approveなどの標準アクションの場合、アクション名は、指定されたアイコン、タイトル、代替テキストなどに自動的にマッピングされます。標準アクション、カスタム・アクション、またはカスタム・ボタンの外観のカスタマイズ方法の詳細は、第66.2.2項「ツールバー・カスタマイズの例」を参照してください。view_mode_iは、ビューによってサポートされているモードのいずれかです(通常はeditまたはview)。ツールバー・カスタマイズの例この項の内容は、次のとおりです。Webモード用の標準アクションを使用したツールバーのカスタマイズ次の構成により、すべてのアセット・タイプに対してWebモードで使用可能なツールバー・アクションが決定されます。...)}前述の構成により、アセットのビュー(「編集」および「調査」)に対応する2つのアクションのリスト(editおよびview)が定義されます。注意:標準アクションのセットを検索するには、controllersプロパティの下にある次のプロパティで指定されているアクションのリストを参照してください。fw.ui.document.AssetDocument(アセットによってサポートされているすべてのアクション)fw.ui.controller.InsiteController(ビュー・コントローラによってサポートされているすべてのアクション)。アセット・タイプおよびサブタイプ用の標準アクションを使用したツールバーのカスタマイズ各ツールバー構成は、次の名前のプロパティを追加することによって、アセット・タイプおよびサブタイプ別にカスタマイズできます。viewAlias/assetTypeviewAlias/assetType/assetSubtypeたとえば、Webモードでページ・アセットのブックマーク/ブックマーク解除ボタンを追加できます。カスタム構成エレメント(CustomElements/avisports/UI/Config/SiteConfigHtmlなど)で、次のプロパティを追加できます。"refresh"]}Surfingページ・アセットを調査すると、次のツールバーが表示されます。注意:次のことに注意してください。viewモードのみをカスタマイズします。Page/AVISectionアセットがWebモードで編集されている場合、標準ツールバーが表示されます。「ブックマーク」および「ブックマーク解除」ボタンは同時には表示されません。これらは両方とも、アセットの現在の状態(すでにブックマークを付けているかどうか)に依存しているからです。カスタム・アクションを使用したツールバーのカスタマイズカスタム・アクションは、次のように、config.toolbarButtonsプロパティに新しいエントリを追加することによって定義できます。<click_handler>}たとえば、次のhelloWorldカスタム・アクションを定義します。}}helloWorldアクションは、次のように、ツールバー構成から参照できます(前の項の例を再使用します)。toolbar}注意:この例では、セパレータ(垂直線)とカスタム・ボタンをツールバーの末尾に追加しています。図helloworld_toolbar.pngの説明より複雑な例では、現在のアセットのidおよびタイプの取得、メッセージ領域でのフィードバックの提供が行われます。メニュー・バーのカスタマイズメニュー・バーは、特定のタイプまたはタイプ/サブタイプのアセット上で動作するメニューをサポートするようにカスタマイズできます。サブメニューには、アクション可能なアイテム、追加メニューまたはメニュー・セパレータを指定できます。この項の内容は、次のとおりです。メニュー・バー・カスタマイズの概要メニュー・バーの構成は、config.menubarプロパティによって定義されます。}ここで:key_iは次のいずれかです。デフォルトのメニュー・バーを定義します。タイプassetTypeのすべてのアセットに対するカスタマイズされたメニュー・バーを定義します。タイプassetTypeおよびサブタイプsubtypeのすべてのアセットに対するカスタマイズされたメニュー・バーを定義します。//menu_iは、各トップ・メニューを示すセクションを開始します。menu_idは、メニューの識別子です。menu_labelは、メニューの表示名です。submenusは、次のいずれかとなります。アクション可能なメニュー・アイテム(メニュー・アイテムをクリックすると、アクションが生成される)。labelは、メニュー・アイテムの表示名を指定します。actionには、editおよびinspectなどの、コントローラによってサポートされるアクションまたはカスタム・クリック・ハンドラを指定できます(第66.3.2項「カスタム・アクションのメニュー・バーへの追加」のカスタマイズ例を参照)。注意:指定されたアクションが現在のドキュメント/ビューでサポートされていない場合、メニューに無効化されて表示されます(グレー表示されます)。saveアクションをトリガーするメニュー・アイテムは、次のように定義されます。"save"}遅延ポップアップ・メニュー(ポップアップ・メニューは、サーバー側でコントローラ・エレメントを実行することによって動的に決定される)。labelは、メニュー・アイテムの表示名を指定します。deferredは、UI/Data/StartMenu/Newなど、コントローラのエレメント名を指定します。cacheは、コントローラ・エレメントの出力がキャッシュされる必要があるかどうかを示すブール値です。現在のサイト/ユーザーのすべての使用可能なスタート・メニュー・アイテムを読み取る「新規」ポップアップ・メニューは、次のように定義されます。true}ポップアップ・メニュー(子メニュー・アイテムが構成自体にハード・ワイヤリングされる)。メニュー・アイテム・セパレータ(横線、メニュー・エントリをグループ化するために使用する)。カスタム・アクションのメニュー・バーへの追加この例では、(カスタムonClickハンドラを実行するため)第66.2.2.3項「カスタム・アクションを使用したツールバーのカスタマイズ」で定義したhelloWorldカスタム・アクションをメニュー・バーに追加します。Menuというメニュー・バーに新しいエントリを追加します。この手順は次のとおりです。最初に、デフォルトのメニュー・バーを再利用して、それに追加します。これを行う最も簡単な方法は、元の配列のコピーを作成することです。config.menubar["default"].slice(0);次のように、メニューを追加できます。]);最後に、子メニュー・アイテムを定義します。Menuが、AVISectionページ・セクションと一緒に表示されるようになります。Worldメニュー・アイテムを選択すると、次のようなカスタムonClickハンドラが実行されるはずです。図custom_menu2.pngの説明メニュー・バーとツールバーのどちらからクリックする場合でも、まったく同じコードを実行するには、次のようにコーディングできます。コンテキスト・メニューのカスタマイズコンテキスト・メニューは右クリックで開き、右クリックされたオブジェクトを操作できるメニューが表示されます。コンテキスト・メニューで使用可能な特定のアイテムおよびオブジェクトが表示される順序は、カスタマイズできます。コンテキスト・メニューは、config.contextMenusプロパティによって定義されます。"action_n"],}値は、次のように定義されます。コンテキスト・メニューのデフォルトのリストを定義します。リストに表示される各メニュー・アイテムは、actionです。すべてのアセットのコンテキスト・メニューのカスタマイズされたリストを定義します。リストに表示される各メニュー・アイテムは、actionです。タイプassetTypeのアセットのコンテキスト・メニュー・アイテムのカスタマイズされたリストを定義します。リストに表示される各メニュー・アイテムは、actionです。アセット・タイプPageのコンテキスト・メニュー構成の例は次のとおりです。reserved.法律上の注意点ライブラリ。