62 Contributorインタフェースのアセット・フォームのカスタマイズ
Oracle WebCenter Sites: Contributorインタフェースのアセット・フォームをカスタマイズする場合、アセット・フォーム・ヘッダーを変更することや、サポートされているデータ型の単一値属性エディタおよび複数値属性エディタを構築することもできます。
トピック:
アセット・フォームのカスタマイズについて
アセット・フォームのヘッダーの変更、および属性エディタのカスタマイズまたは構築を行うことができます。
「属性エディタのカスタマイズ」および「属性エディタの構築」を参照してください。
ノート:
Contributorインタフェースの他のコンポーネントとは異なり、アセット・フォームは、Contributorフレームワークにはありません。そのため、アセット・フォームのリクエストは、UIコントローラによって処理されません。
アセット・フォームのヘッダーの変更
カスタムassettype固有のエレメントを作成し、追加のスタイルシートやJavaScriptコードを含めて、アセット・フォームのヘッダーを変更できます。
アセット・フォームのヘッダーを変更するには、OpenMarket/Xcelerate/AssetType/<AssetTypeName>/
ディレクトリのカスタムassettype固有のエレメントを作成します。
HTMLページの本文を変更するのではなく、追加のスタイルシートまたはJavaScriptコードを含めることができます。エレメントの名前はHeader
にする必要があります。
属性エディタの構築
WebCenter Sitesでサポートされているデータ型のカスタム属性エディタを作成できます。既存の使用準備済の属性エディタのルック・アンド・フィールをカスタマイズすることもできます。
属性エディタのカスタマイズを参照してください。
このトピックでは、データ型text
、string
、integer
またはmoney
の単一値をサポートするカスタム属性エディタを構築する方法について説明します。また、この項では、同じデータ型の複数値属性エディタを実装するためのポインタおよびサンプル・コードも提供します。
ノート:
blob
またはasset
データ型のカスタム属性エディタを作成するには、blob
型はUPLOADER
属性エディタを、asset
データ型はPICKASSET
属性エディタを実装の基準にします。
トピック:
Dojoウィジェットとそのテンプレートの作成
この項では、データ型text
、string
、integer
またはmoney
の単一値を処理するDojoウィジェットを作成する方法について説明します。
この項には次のトピックが含まれます:
プレゼンテーション・オブジェクトとしての属性エディタの定義
この項では、フレックス属性の入力タグ(プレゼンテーション・オブジェクト)を定義する方法について説明します。また、入力タグが属性エディタから表示エレメントへ渡すことができる引数を割り当てる方法を説明します。
属性エディタを定義するには:
属性エディタ・エレメントの作成
この項では、「新規」または「編集」フォームに表示されるときに、属性(単一値)の「編集」ビューを表示するエレメントの作成方法について説明します。このエレメントは、ElementCatalog
表のOpenMarket/Gator/AttributeTypes
ディレクトリに配置される必要があります。エレメント名は、タグで起動できるように、「プレゼンテーション・オブジェクトとしての属性エディタの定義」で定義したタグの名前と正確に一致している必要があります(この例では、MYATTREDITOR
)。
属性エディタの作成
このトピックでは、属性エディタ・アセットを作成して、コンテンツ・コントリビュータがコンテンツ管理サイトで使用できるようにする方法について説明します。このアセットは、「属性エディタ・エレメントの作成」で定義した入力タイプ、たとえば、チェック・ボックス、ラジオ・オプションおよびドロップダウン・リストをサポートします。開発者は、属性を作成または変更する際にこのエディタを選択します。
複数値属性エディタの実装
「属性エディタ・エレメントの作成」の2番目の例には、単一値属性エディタの実装が示されています。
-
text
、integer
、string
またはmoney
データ型の複数値属性エディタを実装するには、次の例のコードに類似したコードを記述します。<%@ taglib prefix="cs" uri="futuretense_cs/ftcs1_0.tld" %> <%@ taglib prefix="ics" uri="futuretense_cs/ics.tld" %> <%@ taglib prefix="satellite" uri="futuretense_cs/satellite.tld" %> <%// // OpenMarket/Gator/AttributeTypes/CustomTextAttributeEditor // // INPUT // // OUTPUT //%> <%@ page import="COM.FutureTense.Interfaces.FTValList" %> <%@ page import="COM.FutureTense.Interfaces.ICS" %> <%@ page import="COM.FutureTense.Interfaces.IList" %> <%@ page import="COM.FutureTense.Interfaces.Utilities" %> <%@ page import="COM.FutureTense.Util.ftErrors" %> <%@ page import="COM.FutureTense.Util.ftMessage"%> <cs:ftcs> <% IList attributeValueList = ics.GetList("AttrValueList", false); boolean hasValues = null != attributeValueList && attributeValueList.hasData(); String attributeValue = hasValues ? attributeValueList.getValue("value") : ""; %> <ics:if condition='<%= "no".equals(ics.GetVar("MultiValueEntry")) %>'> <ics:then> <div dojoType='<%= ics.GetVar("editorName") %>' name='<%= ics.GetVar("cs_SingleInputName") %>' value='<%= attributeValue %>' > </div> </ics:then> <ics:else> <ics:callelement element="OpenMarket/Gator/AttributeTypes/RenderMultiValuedTextEditor"> <ics:argument name="editorName" value='<%= ics.GetVar("editorName") %>' /> <ics:argument name="editorParams" value='<%= ics.GetVar("editorParams") %>' /> <ics:argument name="multiple" value="true" /> <ics:argument name="maximumValues" value='<%= ics.GetVar("maximumValues") %>' /> </ics:callelement> </ics:else> </ics:if> </cs:ftcs>
前述の例のコードを使用すると、複数値属性エディタは、この図のエディタのようになります。
コードの例に関する次の点に注意してください。
-
単一値ウィジェットを使用して複数値表現をレンダリングする、複数値ウィジェットをインスタンス化できます。
-
no
値を指定したMultiValueEntry
変数は、属性エディタが単一値をレンダリングすることを示します。この変数値をyes
に変更すると、属性エディタが複数値をレンダリングできるようになります。 -
JSONオブジェクトまたは他の任意の形式の値を受け入れる複数値ウィジェットを実装できます。
-
複数値属性エディタの場合、
RenderMultiValuedTextEditor
エレメントは、Save
ロジックに必要な非表示入力ノードを作成します。各ノードの値はサーバーに送信されます。 -
複数値ウィジェットは、前述の例の次のコードを使用して、
OpenMarket/Gator/AttributeTypes/RenderMultiValuedTextEditor
エレメントをコールしてレンダリングされます。<ics:else> <ics:callelement element="OpenMarket/Gator/AttributeTypes/RenderMultiValuedTextEditor"> <ics:argument name="editorName" value='<%= ics.GetVar("editorName") %>' /> <ics:argument name="editorParams" value='<%= ics.GetVar("editorParams") %>' /> <ics:argument name="multiple" value="true" /> <ics:argument name="maximumValues" value='<%= ics.GetVar("maximumValues") %>' /> </ics:callelement> </ics:else> </ics:if>
-
-
blob
またはasset
データ型のカスタム属性エディタを作成するには、blob
型はUPLOADER
属性エディタを、asset
データ型はPICKASSET
属性エディタを実装の基準にします。