Contributorインタフェースのアセット・フォームのカスタマイズの詳細は、次の項を参照してください。
Contributorインタフェースのアセット・フォームでは、2つのタイプのカスタマイズがあります。
アセット・フォームのヘッダーを変更する。
既存の属性エディタをカスタマイズする(「属性エディタのカスタマイズ」で説明)、またはWebCenter Sitesによってサポートされているデータ型のカスタム属性エディタを構築する(「属性エディタの構築」で説明)。
注意:
Contributorインタフェースの他のコンポーネントとは異なり、アセット・フォームは、Contributorフレームワークにはありません。そのため、アセット・フォームのリクエストは、UIコントローラによって処理されません。
アセット・フォームのヘッダーを変更するには、OpenMarket/Xcelerate/AssetType/<AssetTypeName>/ディレクトリのカスタムassettype固有のエレメントを作成します。
HTMLページの本文を変更するのではなく、追加のスタイルシートまたはJavaScriptコードを含めることができます。エレメントの名前はHeaderにする必要があります。
「属性エディタのカスタマイズ」の説明に従って、使用準備済の既存の属性エディタの一部のルック・アンド・フィールをカスタマイズできます。WebCenter Sitesでサポートされているデータ型のカスタム属性エディタを作成することもできます。
この項では、データ型text、string、integerまたはmoneyの単一値をサポートするカスタム属性エディタを構築する方法について説明します。また、この項では、同じデータ型の複数値属性エディタを実装するためのポインタおよびサンプル・コードも提供します。
注意:
blobまたはassetデータ型のカスタム属性エディタを作成するには、blob型はUPLOADER属性エディタを、assetデータ型はPICKASSET属性エディタを実装の基準にします。
属性エディタを構築する手順は次のとおりです。
この項では、データ型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>
前述の例のコードを使用すると、複数値属性エディタは、図72-3のエディタのようになります。
コードの例に関する次の点に注意してください。
単一値ウィジェットを使用して複数値表現をレンダリングする、複数値ウィジェットをインスタンス化できます。
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属性エディタを実装の基準にします。