Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.6.0) B72084-01 |
|
![]() 前 |
![]() 次 |
コンテンツ・プレゼンタ・タスク・フローによって、権限のあるユーザーはIT部門やソフトウェア開発者のサポートなしで、Content Serverからコンテンツを取得し、WebCenter Portalアプリケーションでリアルタイムでそれを表示できます。たとえば、最近のプレス・リリースのリストを表示して、ユーザーがそれらをブラウズし、クリックして読めるようにします。ポータルには、イメージ(写真や図表など)やテキスト・コンテンツを配置または追加できます。
注意: Content Presenterでは、Content Serverベースのコンテンツのみを使用できます。他のリポジトリ接続タイプは使用できません。 |
Content Presenterは、選択された表示テンプレートを使用してコンテンツをレンダリングします。この章では、コンテンツ・プレゼンタ表示テンプレートの作成に主な焦点を当てます。特定のコンテンツ・レンダリング要件に合せて、または独自のカスタム・コンテンツ・プロパティに対応する、コンテンツ・プレゼンタ・テンプレートを作成できます。
この章の内容は、次のとおりです。
コンテンツ・プレゼンタ・タスク・フローは、設計時または実行時に追加できます。設計時に(JDevを使用して)コンテンツ・プレゼンタを追加する方法の詳細は、第31章「ポータル・ページへのコンテンツ・タスク・フローおよびドキュメント・コンポーネントの追加」を参照してください。実行時にコンテンツ・プレゼンタを追加および使用する方法の詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのコンテンツ・プレゼンタを使用したコンテンツの公開に関する項を参照してください。
コンテンツ・プレゼンタ表示テンプレートは、コンテンツ・プレゼンタがポータル・ページ上でコンテンツ・アイテムをレンダリングする方法を定義するJSFFファイル(JSFページ・フラグメント)です。WebCenterにはデフォルトの表示テンプレートがいくつか装備されており、これらを使用してすぐに作業を開始できるほか、独自のテンプレートを作成できます。
ヒント: サンプル表示テンプレートは |
表示テンプレートでは充実したADFコンポーネントをすべて使用できるので、コンテンツを表示するために堅牢で人目を引くテンプレートをすばやく簡単に作成できます。ただし、テンプレートでこれらのコンポーネントを使用する必要はありません。
コンテンツ・プレゼンタ表示テンプレートでは、単一コンテンツ・アイテム、複数コンテンツ・アイテムまたは双方の組合せを処理できます。たとえば、複数コンテンツ・アイテムのテンプレートで各アイテムのタブをレンダリングしてから、単一アイテムのテンプレートをコールして選択アイテムの詳細をレンダリングできます。
各コンテンツ・アイテムは、コンテンツ・サーバーのリポジトリで定義された特定コンテンツ・タイプに関連付けらます。コンテンツ・タイプはコンテンツ・アイテムのプロパティを定義します。コンテンツ・タイプはコンテンツ・サーバーのプロファイル定義とSite Studioのリージョン定義にマップできます。タイプはコンテンツ・サーバー上で作成されます。コンテンツ・プレゼンタ表示テンプレートの開発者は、選択されたコンテンツ・アイテムのページ上での表示方法を定義できるように、関連付けられたコンテンツ・タイプに定義されたプロパティの名前を知っておくことが必要です。
ヒント: Content Serverで定義されている既存コンテンツ・タイプのプロパティを判断する1つの方法は、WebCenter Portal: Spacesの「コンテンツ・プレゼンタ構成」ダイアログを使用する方法です。この方法の詳細は、第29.4.5項「コンテンツ・タイプのプロパティ名の発見」を参照してください。 |
実行時に権限のあるエンド・ユーザーは、「コンテンツ・プレゼンタ構成」ダイアログで表示テンプレートを選択できます。
WebCenter Portalには、デフォルトのコンテンツ・プレゼンタ表示テンプレートがいくつか装備されています。こうした事前に構築されているテンプレートは、単一コンテンツ・アイテムと複数コンテンツ・アイテムを表示するためのオプションを提供します。
たとえば、デフォルトのドキュメント詳細ビュー・テンプレートは、単一のコンテンツ・アイテムについて、作成日、変更日、作成ユーザー名、変更ユーザー名、パスおよびコメントといった詳細情報を表示します。図29-0は、実行時にこのテンプレートで表示されるコンテンツ・アイテムを示しています。
複数コンテンツ・アイテムの表示には、複数のコンテンツ・アイテムをアコーディオン形式で表示するアコーディオン・ビューを始め、いくつかのオプションが提供されています。この形式では、図29-2に示されているように、各アイテムを展開してその詳細を表示できます。
デフォルトの表示テンプレートの全リストは、第31.7.1項「コンテンツ・プレゼンタのタスク・フローのパラメータと即時利用可能な表示テンプレート」を参照してください。
ヒント: コンテンツ・プレゼンタ表示テンプレートを作成する場合、デフォルト・テンプレートの1つをコピーして変更することをお薦めします。 |
デフォルトの表示テンプレート(第29.3項「デフォルト表示テンプレートの使用」を参照)がニーズを満たさない場合、カスタムのコンテンツ・プレゼンタ・テンプレートを定義できます。
この項の内容は、次のとおりです。
コンテンツ・プレゼンタ表示テンプレートの定義方法は、ニーズに応じて異なります。一般的には、コンテンツの特定単一アイテムについて表示テンプレートを定義してから、単一アイテムの表示テンプレートへのコールを含む複数コンテンツ・アイテムの表示テンプレートを定義します。
テンプレート定義には、次のように他の表示テンプレートへのコールを含めることができます。
単一コンテンツ・アイテムの表示テンプレートは、別の単一コンテンツ・アイテムの表示テンプレートをコールできます。
複数コンテンツ・アイテムの表示テンプレートは、単一コンテンツ・アイテムの表示テンプレートをコールできます(次の例を参照)。
複数コンテンツ・アイテムの表示テンプレートは、別の複数コンテンツ・アイテムの表示テンプレートをコールできます。
コンテンツ・プレゼンタ表示テンプレートを作成する際の基本的なタスクは、次のとおりです。
単一アイテムと複数アイテムのいずれの表示テンプレートを作成するかを決定します。第29.4.2項「単一アイテムの表示テンプレートの定義」と第29.4.3項「複数アイテムの表示テンプレートの定義」を参照してください。
コンテンツ・アイテムによってどのような情報を表示するかを決定します。WebCenter Portalは、この情報を取得および表示するためにデザインされた一連のEL式を提供しています。付録G「式言語式」と第29.4.4項「EL式を使用したコンテンツ・アイテム情報の取得」を参照してください。
テンプレートのルック・アンド・フィールをデザインします。表示テンプレートでは、標準JSFF構造に加え、ADFコンポーネントを使用できます。『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
ポータル・リソースとしてテンプレートをエクスポートします。第29.5.1項「ポータル・リソースとしてのコンテンツ・プレゼンタ表示テンプレートのエクスポート」を参照してください。
コンテンツ・プレゼンタ表示テンプレートを作成する単一コンテンツ・アイテムの例を次に示します。
ページ上で特定ルック・アンド・フィールで表示する個々のアイテム。
特定タイプのアイテムの異なるビュー(例: 記事の短いビューと詳細ビュー)。
類似アイテムの異なるバージョン(例: グループ別に異なるプロパティ・セットを使用して異なる方法でフォーマットされるプレス・リリース)。
単一コンテンツ・アイテムの表示テンプレートの定義では、表29-1にリストされているJSPタグを使用します。
表29-1 単一コンテンツ・アイテムのコンテンツ表示テンプレートのタグ
JSPタグ | 説明 | 例 |
---|---|---|
必須。単一コンテンツ・アイテムのテンプレートを定義します。 属性:
|
<dt:contentTemplateDef var="node"> <af:outputText value="#{node.name}" /> </dt:contentTemplateDef> |
|
オプション。指定ノード・プロパティの文字列値をインラインで取得およびレンダリングします。 属性:
|
<!--
Handling of text-based primary
properties (HTML, text, etc.).
-->
<dt:contentTemplateDef var="node">
<cmf:renderProperty id="rp1"
name="#{node.primaryProperty.name}"
node="#{node}"/>
</dt:contentTemplateDef>
|
|
オプション。 別の単一アイテム・テンプレートをコールします。 属性:
|
<dt:contentTemplateDef var="node">
<af:outputText value="#{node.name}" >
<dt:contentTemplate node="#{node}"
view="templates.pressrelease.item"
/>
</af:outputText>
</dt:contentTemplateDef>
|
単一コンテンツ・アイテムの表示テンプレートを定義する手順は次のとおりです。
JDeveloperでJSFFファイルを作成します。
「ファイル」メニューから「新規」を選択します。
「新規ギャラリ」ダイアログで、「Web層」を展開し、「JSF」、「JSFページ・フラグメント」の順に選択します。
「OK」をクリックします。
「新規JSFページ・フラグメントの作成」ダイアログで、表示テンプレート・ファイルの名前を入力します。
ポータルWebプロジェクトのoracle/webcenter/portalapp/pagesフォルダを指すように「ディレクトリ」フィールドを設定します。このディレクトリは正しいルート・パスから設定する必要があります。JDeveloperでは、ルート・パスはPROJECT_NAME > Webコンテンツになります。ファイル・システムの場合、ルート・パスはPROJECT_ROOT/public_htmlです。たとえば、PROJECT_ROOT/public_html/oracle/webcenter/portalapp/pagesになります。最初にpages
にサブフォルダを作成し、そのサブフォルダにJSFFを格納する方法をお薦めします。
「表示」、「コンポーネント・パレット」の順に選択して、コンポーネント・パレットを開きます。
コンポーネント・パレット最上部のドロップダウン・リスト(図29-3)で、次の手順に従います。
表示テンプレート・タグのリストは、「WebCenterコンテンツ表示テンプレート」を選択します。
renderProperty
タグは、「WebCenterコンテンツ管理フェース」を選択します。
「ソース」ビューで、必要な表示テンプレート・タグをコンポーネント・パレットからページにドラッグ・アンド・ドロップして、テンプレートを定義します。各タグと必要なパラメータ値の情報は、表29-1を参照してください。
例29-1と例29-2は、単一コンテンツ・アイテムの表示テンプレートのサンプル定義を示しています。これらの例は、特定の種類のドキュメント(プレス・リリース)が社内の2つの異なる部門で作成される場合のユース・ケースを示しています。それぞれの部門では、独自のコンテンツ・タイプとプロパティが定義されています。これらのサンプル・コンテンツ・プレゼンタ表示テンプレートによって、この2種類のコンテンツ・タイプを一貫した方法で表示できます。
例29-1で示されたテンプレートでは、xHeading
という名前のプロパティを使用してプレス・リリース・ドキュメントの見出しを記述し、xDestinationUrl
を使用してドキュメントの場所を記述するプレス・リリースを処理します。所定のコンテンツ・タイプに対するこうしたプロパティ名の取得方法を学ぶには、第29.4.5項「コンテンツ・タイプのプロパティ名の発見」を参照してください。
例29-1 プレス・リリース・ドキュメントのサンプル・コンテンツ・プレゼンタ表示テンプレート
<?xml version = '1.0'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:dt="http://xmlns.oracle.com/webcenter/content/templates"> <dt:contentTemplateDef var="node"> <af:goImageLink text="#{node.propertyMap['xHeading'].value}" id="gil1" icon="#{node.icon.smallIcon}" destination="#{node.propertyMap['xDestinationUrl'].value}" targetFrame="_blank"> </af:goImageLink> </dt:contentTemplateDef> </jsp:root>
例29-2で示されているテンプレートでは、dDocTitle
という名前のプロパティを使用してプレス・リリース・ドキュメントの見出しを記述し、xLinkUrl
を使用してドキュメントの場所を記述するプレス・リリースを処理します。
例29-2 もう1つのプレス・リリース・ドキュメントのサンプル・コンテンツ・プレゼンタ・テンプレート
<?xml version = '1.0'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:dt="http://xmlns.oracle.com/webcenter/content/templates"> <dt:contentTemplateDef var="node"> <af:goImageLink text="#{node.propertyMap['dDocTitle'].value}" id="gil1" icon="#{node.icon.smallIcon}" destination="#{node.propertyMap['xLinkUrl'].value}" targetFrame="_blank"> </af:goImageLink> </dt:contentTemplateDef> </jsp:root>
コンテンツ・プレゼンタ表示テンプレートを作成する複数コンテンツ・アイテムの例を次に示します。
1つのページに表示する一群の類似アイテム(例: 本のリストや写真による従業員名簿)。
問合せ結果(例: 先週変更された全ドキュメント)。
Content Serverフォルダの全ドキュメントのリスト。
複数コンテンツ・アイテムの表示テンプレートの定義では、表29-2にリストされているJSPタグを使用します。
表29-2 複数コンテンツ・アイテムのコンテンツ表示テンプレートのタグ
JSPタグ | 説明 | 例 |
---|---|---|
必須。複数コンテンツ・アイテムのテンプレートを定義します。 属性:
|
<dt:contentListTemplateDef var="nodes"> <af:iterator value="#{nodes}" var="node"> <af:outputText value="#{node.name}" /> </af:iterator> </dt:contentListTemplateDef> |
|
オプション。 別の複数アイテム・テンプレートをコールします。 属性:
|
<dt:contentListTemplateDef var="nodes">
<!--
Reuse the default bulleted list view, but
indent it with a <blockquote>
-->
<f:verbatim>
<blockquote>
</f:verbatim>
<dt:contentListTemplate nodes="#{nodes}"
category="oracle.webcenter.content.
templates.default.category"
view="oracle.webcenter.content.
templates.default.list.bulleted"/>
<f:verbatim>
</blockquote>
</f:verbatim>
</dt:contentListTemplateDef>
|
|
オプション。 単一アイテム・テンプレートをコールします。 属性:
|
<dt:contentListTemplateDef var="nodes">
<af:iterator rows="0" var="node"
varStatus="iterator" value="#{nodes}">
<dt:contentTemplate node="#{node}"
view="templates.pressrelease.listitem"
nodesHint="#{nodes}"/>
</af:iterator>
</dt:contentListTemplateDef>
|
複数コンテンツ・アイテムの表示テンプレートを定義する手順は次のとおりです。
第29.4.2項「単一アイテムの表示テンプレートの定義」の手順1から3の説明に従って、JDeveloperでJSFFファイルを作成し、コンポーネント・パレットを開きます。
「ソース」ビューで、必要な表示テンプレート・タグをコンポーネント・パレットからページにドラッグ・アンド・ドロップします。各タグと必要なパラメータ値の情報は、表29-2を参照してください。
例29-3は、複数コンテンツ・アイテムの表示テンプレートのサンプル定義を示しています。
例29-3 複数プレス・リリース表示用のサンプル表示テンプレート定義(press-release-list-view.jsff)
このテンプレート定義では、参照されるビュー(view="mycorp.content.templates.pressrelease.listitem"
)に従って、表示するように選択されたデータ・アイテムを順に処理します。
<?xml version = '1.0'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:dt="http://xmlns.oracle.com/webcenter/content/templates">
<dt:contentListTemplateDef var="nodes">
<af:panelGroupLayout layout="scroll" id="nodeListPanel" valign="middle">
<af:iterator rows="0" var="node" varStatus="iterator" value="#{nodes}">
<dt:contentTemplate node="#{node}"
view="mycorp.content.templates.pressrelease.listitem"
nodesHint="#{nodes}"/>
</af:iterator>
</af:panelGroupLayout>
</dt:contentListTemplateDef>
</jsp:root>
この項では、コンテンツ・アイテムに関する特定情報を取得および表示するためにコンテンツ・プレゼンタ表示テンプレートの定義で使用できるEL式について説明します。
第29.4.2項「単一アイテムの表示テンプレートの定義」と第29.4.3項「複数アイテムの表示テンプレートの定義」の説明に従ってコンテンツ・プレゼンタ表示テンプレートを定義する際、次の表で説明されているEL式を使用します。これらの式は、表29-1と表29-2で説明されているJSPタグとともに使用されます。
表29-3にリストされているEL式を使用すると、表示テンプレートでコンテンツ・アイテムの基本情報を表示できます。
表29-3 基本コンテンツ情報を取得するためのEL式
EL式 | 説明 |
---|---|
|
ノードの作成者のユーザー名を返します。 |
|
ノードの作成日を返します。 |
|
現在のノードが有効な親ノードIDを持っている場合または親がないノードの場合、 |
|
現在のWebアプリケーションで定義されたアイコン・サービスを返します。 |
|
ノードの識別子を返します。 |
|
このノードがフォルダまたはコンテナと関連付けられている場合、 |
|
このノードが別のオブジェクト・クラス定義によって継承された場合、 |
|
ノードの最終更新者のユーザー名を返します。 |
|
ノードの最終更新日を返します。 |
|
ノードの名前を返します。 |
|
親ノードの識別子を返します。 |
|
ノードのパスを返します。 |
|
ノードの主要プロパティがある場合、それを返します。 |
|
プロパティ名をキーとする、ラップされたプロパティ・オブジェクトのマップを作成して返します。プロパティには |
|
このノードの主要プロパティがある場合、そのノード・プロパティURLサービスのインスタンスを返します。デフォルトでは、 |
表29-4と表29-5で説明されているEL式を使用して、コンテンツ・アイテムのノード・プロパティとプロパティ値に対するアクションを実行します。
表29-4 コンテンツ・アイテムのノード・プロパティのEL式
EL式 | 説明 |
---|---|
|
タイプがテキストまたはHTMLの場合、テキストまたはHTMLとしてこのプロパティを返します。 |
|
このプロパティに値が関連付けられている場合、 |
|
現在のWebアプリケーションで定義されたアイコン・サービスを返します。 |
|
複数値を持つプロパティのインデックス付き名前を返します。たとえば、 |
|
プロパティのMIMEタイプが |
|
現在のプロパティのタイプが |
|
現在のプロパティのタイプが |
|
現在のプロパティのタイプが |
|
現在のプロパティのタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
現在のプロパティのタイプが |
|
現在のプロパティのタイプが |
|
プロパティのMIMEタイプが |
|
このプロパティが複数値を持つ場合、 |
|
現在のプロパティのタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
このプロパティが主要プロパティの場合、 |
|
このプロパティが必須の場合、 |
|
このプロパティが制限付きの場合、 |
|
プロパティのMIMEタイプが |
|
現在のプロパティのタイプが |
|
このプロパティがテキスト・ベース( |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
プロパティのMIMEタイプが |
|
ノードとして 例: |
|
プロパティの名前を返します。 |
|
この単一値プロパティのネストされたプロパティを取得して、プロパティのリストを返します。 |
|
このプロパティ値のデータ型を返します。たとえば、 |
|
このプロパティのURLサービスを返します。 |
|
このプロパティの値サービスを返します。 |
|
静的リストの要素を返します。次に例を示します。 <af:iterator var="listItem" value="#{node.propertyMap['ARTICLE_RGD:Paragraphs'].nestedProperties}" varStatus="vs"> <af:outputText id="ot1" value='#{listItem[0].value}'/> <af:outputText id="ot3" value="#{listItem[1].value}"/> </af:iterator> |
|
Site StudioデータをHTMLテキストとして返します。次に例を示します。
要素名( |
表29-5 コンテンツ・アイテムのノード・プロパティ値のEL式
EL式 | 説明 |
---|---|
|
バイナリ・プロパティ・タイプまたは添付ファイルのカスタム属性を返します。
|
|
このプロパティの値を |
|
このプロパティの値を |
|
このプロパティの値を |
|
このプロパティの値を |
|
プロパティが複数値を持つ場合、プロパティのインデックスを返します。 例: |
|
このプロパティの値を 例: |
表29-6と表29-7は、コンテンツ・アイテムとプロパティに関連付けられたアイコンとURLを操作するためのEL式を説明しています。
表29-6 コンテンツ・アイテムのノードまたはプロパティ・アイコンのEL式
EL式 | 説明 |
---|---|
|
大きいアイコンのイメージ・リソースのURLを返します。 例: |
|
小さいアイコンのイメージ・リソースのURLを返します。 例: |
表29-7 コンテンツ・アイテムのノードURLのEL式
EL式 | 説明 |
---|---|
|
バイナリ・コンテンツへのURLを作成します。ダウンロードを強制し、オペレーティング・システムはコンテンツ・タイプに基づいてコンテンツをレンダリングします。 例: |
|
バイナリ・コンテンツへのURLを作成します。コンテンツ・タイプに基づいてブラウザがコンテンツをレンダリングできるようにします。 デフォルトでは、 例: |
この項では、コンテンツ・アイテムのコンテンツ・タイプのプロパティ名を知るために役立つテクニックを説明します。
注意: RESTサービスを使用しても、コンテンツ・タイプのプロパティ名を取得できます。詳細はOracle Fusion Middlewareコンテンツ管理RESTサービス開発者ガイドを参照してください。 |
各コンテンツ・アイテムは、コンテンツ・サーバーのリポジトリで定義された特定コンテンツ・タイプに関連付けらます。コンテンツ・タイプはコンテンツ・サーバーのプロファイル定義とSite Studioのリージョン定義にマップできます。タイプはコンテンツ・サーバー上で作成されます。コンテンツ・タイプはコンテンツ・アイテムのプロパティを定義し(表29-8を参照)、テンプレートの登録時に識別されます。
コンテンツ・プレゼンタ表示テンプレートの開発者は、選択されたコンテンツ・アイテムのページ上での表示方法を定義できるように、関連付けられたコンテンツ・タイプに定義されたプロパティの名前を知っておくことが必要です。
Content Serverで定義されている既存コンテンツ・タイプのプロパティを判断する1つの方法は、WebCenter Portal: Spacesの「コンテンツ・プレゼンタ構成」ダイアログを使用する方法です。
「コンテンツ・プレゼンタ構成」ダイアログを開きます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのコンテンツ・プレゼンタ・タスク・フローを使用したコンテンツの表示に関する項を参照してください。
「コンテンツ・プレゼンタ構成」ダイアログの「コンテンツ」タブで、「問合せの結果」を選択してコンテンツ・タイプのリストを表示します。
表示するコンテンツ・アイテムの「コンテンツ・タイプ」を選択します。
「その他の問合せフィルタ」の隣の「追加」をクリックして、選択したコンテンツ・タイプに定義されているすべてのプロパティをリストします(図29-4)。
注意: ドロップダウン・リストに表示されるプロパティ名のリスト(図29-4)は表示名のみです。たとえば、表示名 表示名に対応する実際のプロパティ名を見つけるには、Content Server管理コンソールを通してアクセスするか、Content Server管理者に問い合せてください。 実際のコンテンツ・タイプ・プロパティを参照する際、先頭に |
場合によっては、CSSファイルのような外部ファイルを表示テンプレートで参照する必要があります。このようなすべての参照では、Webアプリケーションのルートへの相対パスか絶対パスを指定します。次に例を示します。
絶対パス – http://host:port/mypath/file.css
相対パス – /webcenter/mypath/file.css
外部ファイルに対するローカル参照は使用しないでください。第29.5項「Frameworkアプリケーションにおけるコンテンツ・プレゼンタ表示テンプレートの使用」で説明されているように、WebCenter Portal: Spacesアプリケーションにコンテンツ・プレゼンタ表示テンプレートをアップロードする際、外部ファイルへのローカル参照は含まれないので、外部ファイルへのローカル参照は機能しません。
カスタム表示テンプレートを使用してSite Studioリージョン定義要素を表示できます。たとえば、TITLE、LEAD、IMAGEおよびBODYという4つの要素を持つRD_NEWSというSite Studioリージョン定義があると仮定します。コンテンツ・プレゼンタ表示テンプレートでは、次のようなノード・プロパティEL式を使用して、これらの要素を参照できます。
#node.propertyMap['RD_NEWS:LEAD'].asTextHtml}
例29-4は、こうしたSite Studioリージョン要素をcontentTemplateDef
定義に含める方法を示します。
例29-4 テンプレートにおけるSite Studioリージョン要素の参照
<dt:contentTemplateDef var="node"> <af:panelGroupLayout layout="vertical" id="pgl3"> <af:panelGroupLayout layout="horizontal" valign="top" inlineStyle="background-color:#FFF; padding:10px;" id="pgl4"> <af:panelGroupLayout layout="vertical" id="pgl2" valign="top"> <af:outputText value="#{node.propertyMap['dInDate'].value.calendarValue}" id="ot3" styleClass="bodytext" converter="javax.faces.DateTime"/> </af:panelGroupLayout> <af:spacer width="10px;" id="s1" inlineStyle="background-color:#DDD; color:white;"/> <af:panelGroupLayout layout="vertical" id="pgl1" valign="top"> <af:outputText value="#{node.propertyMap['xTargetGroup'].value}" id="ot12" inlineStyle="background-color:#0A9FC0; color:white; text-align:left; padding:5px;"/> <af:goLink text="#{node.propertyMap['RD_NEWS:TITLE'].asTextHtml}" id="gil1" destination="#{'/faces/home/news-viewer?news_id='}#{node.propertyMap['dDocName'].value}" styleClass="newstitle"/> <af:outputText value="#{node.propertyMap['RD_NEWS:LEAD'].asTextHtml}" id="ot2" styleClass="bodytext"/> </af:panelGroupLayout> <af:panelGroupLayout layout="vertical" id="pgl32" valign="top" styleClass="newsimage"> <af:outputText value="#{node.propertyMap['RD_NEWS:IMAGE'].asTextHtml}" escape="false" id="ot1" inlineStyle="max-width:100px;"/> </af:panelGroupLayout> </af:panelGroupLayout> <af:panelGroupLayout layout="horizontal" id="aaaa"> </af:panelGroupLayout> </af:panelGroupLayout> </dt:contentTemplateDef>
複数のテンプレートでSite Studioリージョン要素を参照する方法を示す完全なエンドツーエンドの例は、WebCenterアーキテクチャ・チームのブログ・エントリ(http://blogs.oracle.com/ATEAM_WEBCENTER/entry/content_presenter_cmis_complete
)を参照してください。
コンテンツ・タスク・フローにおける表示テンプレートの使用の詳細は、第31.5項「コンテンツ・タスク・フローのページへの追加」を参照してください。また、第31.7.1項「コンテンツ・プレゼンタのタスク・フローのパラメータと即時利用可能な表示テンプレート」も参照してください。WebCenter Portal: Frameworkアプリケーションへの表示テンプレートの統合の詳細は、次の第29.5項「Frameworkアプリケーションにおけるコンテンツ・プレゼンタ表示テンプレートの使用」を参照してください。
注意: コンテンツ・プレゼンタの表示テンプレートを使用してWikiページをFrameworkアプリケーションで表示すると、デフォルトでそのWikiページ内のリンクがドキュメント・ビューアで表示されます。コンテンツ・プレゼンタを使用してWikiページのリンクを表示する場合、 |
この項では、Frameworkアプリケーションのコンテンツ・プレゼンタでコンテンツ・プレゼンタ表示テンプレートを使用する方法を説明します。
注意: ローカルで構成されたJDev環境を使用してFrameworkアプリケーションを開発する場合、アプリケーションでコンテンツ・プレゼンタ表示テンプレートを使用するには、第29.5.1項「ポータル・リソースとしてのコンテンツ・プレゼンタ表示テンプレートのエクスポート」の説明に従ってポータル・リソースとしてエクスポートします。第29.5.2項「新しいコンテンツ・プレゼンタ表示テンプレートのアップロード」で説明されているアップロード・タスクの実行は不要です。 |
この項では、ポータル・リソースとしてコンテンツ・プレゼンタ表示テンプレートをエクスポートする方法を説明します。この手順は、デプロイされているWebCenter Portal: Spacesアプリケーションとコンテンツ・プレゼンタに実行時にコンテンツ・プレゼンタ表示テンプレートを追加する際に必要です。
前述の第29.4項「コンテンツ・プレゼンタ表示テンプレートの作成」の説明に従ってコンテンツ・プレゼンタ表示テンプレートを作成します。
アプリケーション・ナビゲータで、コンテンツ・プレゼンタ表示テンプレート・ファイル(JSFFファイル)を右クリックし、「ポータル・リソースの作成」を選択します。
「ポータル・リソースの作成」ダイアログに入力します。このダイアログは、単一アイテムと複数アイテムのどちらのテンプレートを作成するかによって異なります。単一アイテムのテンプレートのダイアログは図29-5に示されています。複数アイテムのテンプレートのダイアログは図29-6に示されています。
通常は「ポータル・リソースの作成」ダイアログのデフォルト設定で十分ですが、「ビューID:*」フィールドに一意の値を入力する必要があります。「表示名」は、実行時に表示テンプレートのドロップダウン・メニューに表示される名前です。
ビューIDパラメータは人間が判読可能な形式を意図しているので、自動的には生成されません。たとえば、ビューIDを使用して、あるテンプレートを別のテンプレートからプログラムによって参照できます。たとえば、複数コンテンツ・アイテムのテンプレートで各アイテムのタブをレンダリングし、選択されたタブの下で使用される単一アイテムのテンプレートをコールして、選択されたアイテムの詳細をレンダリングできます。また、たとえば、コンテンツ・プレゼンタ・タスク・フローのパラメータとしてビューIDを渡すことで、あるテンプレートを別のテンプレートに含めることができます。後者のユース・ケースを示す詳細な例は、WebCenterアーキテクチャ・チームのブログ・エントリ(http://blogs.oracle.com/ATEAM_WEBCENTER/entry/content_presenter_cmis_complete
)を参照してください。第29.4.7項「カスタム・ビューにおけるSite Studioリージョン要素の参照」も参照してください。
単一アイテムのテンプレート用の「ポータル・リソースの作成」ダイアログには、他に次の属性が含まれます。
テンプレート・タイプ:* – テンプレートが単一アイテムと複数アイテムのどちらのテンプレートかを反映します。
コンテンツ・リポジトリ名:* – デフォルトでは、ポータル・リソースは、アプリケーションのデフォルト・コンテンツ接続に関連付けられたリポジトリを使用します。WebCenter Portal: Spacesアプリケーションで使用するためにポータル・リソースをエクスポートする場合、WebCenter Portal: Spaces接続名で使用されるものと一致するリポジトリを選択する必要があります。
コンテンツ・タイプ – テンプレートが有効なコンテンツ・タイプを選択できます。メニューに表示されるコンテンツ・タイプのリストは、選択されたコンテンツ・リポジトリに応じて異なります。
コンテンツ・タイプのデフォルト・ビュー:* – 「True」に設定すると、表示テンプレートが、リポジトリとコンテンツ・タイプの所定の組合せに使用するデフォルト・テンプレートであることを指定します。
ビューID:* – この項で前述したように、テンプレートをプログラム的に参照するために使用する一意の値。
複数アイテムのテンプレート用の「ポータル・リソースの作成」ダイアログには、他に次の属性が含まれます。
テンプレート・タイプ:* – テンプレートが単一アイテムと複数アイテムのどちらのテンプレートかを反映します。
カテゴリ名 – 表示テンプレートのカテゴリに指定する名前。カテゴリを説明する名前を指定するか、「デフォルトのテンプレート」のカテゴリ名を使用できます。
カテゴリID – カテゴリのID。カテゴリ名として「デフォルトのテンプレート」を選択すると、このフィールドは読取り専用となり、oracle.webcenter.content.templates.default.categoryが設定されます。新しいカテゴリを作成する場合、この値には一意の文字列を指定できます。たとえば、oracle.webcenter.content.templates.pressrelease.categoryを指定できます。2つのリソースが同じIDを持つ場合、それらはユーザー・インタフェースで同じグループにまとめられます。
ビューID:* – この項で前述したように、テンプレートをプログラム的に参照するために使用する一意の値。
終了したら、ダイアログで「OK」をクリックします。
コンテンツ・プレゼンタ表示テンプレート(JSFF)ファイルを再度右クリックして、今回は「ポータル・リソースのエクスポート」を選択します。
「ポータル・リソースのエクスポート」ダイアログで、エクスポートしたポータル・リソース・ファイルを配置するディレクトリを入力するか参照します。このファイルはファイル・システムの任意の場所に配置できます。
「ポータル・リソースのエクスポート」ダイアログで「OK」をクリックします。
これで、ポータル・リソースとしてコンテンツ・プレゼンタ表示テンプレートがエクスポートされます。次の手順は、WebCenter Portal: Spacesアプリケーションにこれをアップロードすることです。アップロードした表示テンプレート・ポータル・リソースは、ポータル・ページにコンテンツ・プレゼンタを追加すると、表示テンプレートのリストで利用できます。
新しい表示テンプレートは、リソース・マネージャを含むデプロイ済みのWebCenter Portal: FrameworkまたはWebCenter Portal: Spacesアプリケーションにアップロードできます。WebCenter Portal: FrameworkまたはWebCenter Portal: Spacesアプリケーションにコンテンツ・プレゼンタ表示テンプレートをアップロードする手順は次のとおりです。
注意: コンテンツ・プレゼンタ表示テンプレートを開発した設計時のFrameworkアプリケーションとWebCenter Portal: Spacesアプリケーションで、同じリポジトリ接続名と詳細にする必要があります。 |
WebCenter Portal: FrameworkまたはWebCenter Portal: Spacesアプリケーションを起動します。
コンテンツ・プレゼンタ表示テンプレートの追加先ページに移動します。
「管理」をクリックします。
「リソース」タブを選択します。
「外観とレイアウト」という見出し(Webページの右側)の下の「コンテンツ・プレゼンタ」をクリックします。
図29-7に示された「アップロード」を選択します。
「アップロード」ダイアログで、ファイル・システム上に保存したポータル・リソース・ファイルにナビゲートします。
テンプレート・ファイルを選択して「OK」をクリックします。操作が成功すると、情報ダイアログに「リソースは正常にアップロードされました。」というメッセージが表示されます。
図29-8に示されているように、「リソース」タブのリスト・ビューからコンテンツ・プレゼンタ表示テンプレートを見つけて選択します。
テンプレートの状態が現在非表示の場合、「編集」メニューから「表示」を選択します。テンプレートが非表示の場合、コンテンツ・プレゼンタで使用できません。
これで、新しいコンテンツ・プレゼンタ表示テンプレートを、WebCenter Portal: Spacesアプリケーションのコンテンツ・プレゼンタで使用する準備が整いました。
この項では、コンテンツ・プレゼンタを使用してコンテンツ・プレゼンタ表示テンプレートをテストする方法を説明します。
コンテンツ・プレゼンタ表示テンプレートを追加したWebCenter Portal: Spacesアプリケーションを現在実行中でない場合、これを起動します。このアプリケーションには、コンテンツ・プレゼンタが使用できるContent Server接続が必要です。前の項で説明されている設定手順を完了したばかりの場合、「管理」ページの右上隅の「スペースに戻る」リンクをクリックします。
新しいコンテンツ・プレゼンタ表示テンプレートを使用するスペースに移動します。これを行うには、「スペース」タブを選択して、所有するスペースまたは編集可能なスペースを選択します。
オプションとして、表示テンプレートをテストするために新しいページを作成します。「ページ・アクション」メニューから「新規ページの作成」を選択します。「保存」と「閉じる」を選択します。
新規ページまたは既存のページで、「ページ・アクション」メニューから「ページの編集」を選択します。
コンテンツ・プレゼンタを追加するページの部分で「コンテンツの追加」ボタンを選択します。
図29-9に示されているように、「コンテンツの追加」ダイアログで、「コンテンツ管理」フォルダを開きます。
「コンテンツの追加」ダイアログで、コンテンツ・プレゼンタの隣の「追加」ボタンをクリックします。
「コンテンツの追加」ダイアログを閉じます。
コンテンツ・プレゼンタ・ツール・バーでタスク・フローの「編集」アイコンを選択します(図29-10を参照)。
「コンテンツ・プレゼンタ構成」ウィンドウで、「テンプレート」タブを選択します。
図29-11に示されているように、「テンプレート」メニューからコンテンツ・プレゼンタ表示テンプレートを選択します。
このコンテンツ・プレゼンタ・テンプレートが、コンテンツ・プレゼンタ・インスタンスに適用されます。コンテンツ・プレゼンタと表示テンプレートの使用の詳細は、第31.2項「ドキュメント・サービスのタスク・フローの概要」と第29.3項「デフォルト表示テンプレートの使用」を参照してください。
この項の内容は、次のとおりです。
コンテンツ・プレゼンタ表示テンプレートを定義したら、コンテンツ・プレゼンタ・タスク・フロー・パラメータでコンテンツと表示テンプレートを指定して、アプリケーションのページにコンテンツ・プレゼンタ・タスク・フローを追加できます(第31.6項「コンテンツ・タスク・フローのパラメータの変更」と第29.3項「デフォルト表示テンプレートの使用」を参照)。
アプリケーションにドキュメント・サービスを統合する場合(第30章「ドキュメント・サービスの統合」を参照)、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのコンテンツ・プレゼンタを使用したコンテンツの公開に関する項で説明されているように、アプリケーションのエンド・ユーザーは「コンテンツ・プレゼンタ構成」ダイアログでコンテンツとコンテンツ・プレゼンタ表示テンプレートを選択して、アプリケーションの編集可能なページにコンテンツを含めることができます。「コンテンツ・プレゼンタ構成」ダイアログで公開する表示テンプレートをコンテンツ・プレゼンタが識別する方法については、第29.6.2項「選択されたコンテンツ・アイテムの表示テンプレートの識別」を参照してください。
実行時にユーザーが「コンテンツ・プレゼンタ構成」ダイアログでコンテンツを選択すると、コンテンツ・プレゼンタはリソース・マネージャをチェックして、選択されたコンテンツ・アイテムに適した表示テンプレートを識別し、ユーザーが選択できるように「コンテンツ・プレゼンタ構成」ダイアログの「テンプレート」ページに有効なテンプレートのリストを公開します。第17章「リソース・マネージャの追加および使用」も参照してください。
単一コンテンツ・アイテムのテンプレートの場合は、コンテンツ・プレゼンタは次の優先順位に従って有効なテンプレートのリストを生成します。
リソース・マネージャで、コンテンツ・アイテムのコンテンツ・リポジトリとコンテンツ・タイプに一致するテンプレート定義をチェックします。
デフォルトのコンテンツ・リポジトリ(*
)と指定のコンテンツ・タイプに一致するテンプレート定義を追加します。
継承されたコンテンツ・タイプに一致するテンプレート定義を追加します。
デフォルトのコンテンツ・リポジトリ(*
)とデフォルトのコンテンツ・タイプ(*
)に一致するテンプレート定義を追加します。
複数コンテンツ・アイテムのテンプレートの場合は、コンテンツ・プレゼンタは次の優先順位に従って有効なテンプレートのリストを生成します。
リソース・マネージャで、選択されたテンプレート・カテゴリに関連付けられたテンプレート定義をチェックします。
デフォルト・カテゴリ(*
)に関連付けられたテンプレート定義を追加します。
たとえば、ユーザーが複数コンテンツ・アイテム(フォルダの複数の子、検索の複数の結果など)を選択した場合、「コンテンツ・プレゼンタ構成」ダイアログには、コンテンツ・アイテムのリポジトリに基づいて、カテゴリのリストとそのカテゴリおよびデフォルト・カテゴリに関連付けられたテンプレートのリストが表示されます。
注意: 「コンテンツ・プレゼンタ構成」ダイアログでユーザーがテンプレートを選択すると、そのテンプレートを使用して実行中のアプリケーションで選択されたコンテンツ・アイテムが表示されます。後でなんらかの理由でそのテンプレートがリソース・マネージャから削除された場合、コンテンツ・プレゼンタは前述の優先順位に従ってコンテンツ・アイテムを表示するために最も一致度の高いテンプレートを自動的に選択します。 |
コンテンツ・プレゼンタ表示テンプレートで表示するためにコンテンツ・ノードを取得すると、ほとんどのコンテンツ・アイテム・ノード・プロパティ値はノードとともに即座に取得されますが、一部の値は後で必要な場合のみロードされます。ノード・プロパティ値の選別的なロードは、パフォーマンスの違いをもたらすほか、ユーザーや開発者に透過的です。
コンテンツ・プレゼンタ表示テンプレートの開発者は、異なるプロパティ値がロードされたことに気付いた場合、テンプレートのパフォーマンスを最適化できます。たとえば、一般的なリストの表示テンプレートの場合、ノードを最初に取得したときに即座にロードされるプロパティのみを参照して、後で必要なときにロードされるプロパティを避けると、より高速にレンダリングされます。
2番目の考慮点は、ノードの取得方法(検索または親IDによるフェッチ)によって決まります。検索(「問合せの結果」など)のためのノード取得時には即座にロードされるプロパティが、他の取得方法(「フォルダの下のコンテンツ」など)では後でロードされる可能性があります。表29-8は、取得メカニズム別に、ノード取得時にノード・プロパティが即座にロードされるかどうかを示しています。
表29-8にリストされたノード・プロパティの詳細は、Oracle WebCenter Content Idocスクリプト・リファレンス・ガイドを参照してください。
表29-8 ノード取得メカニズム別のノード・プロパティのロード