|
プレースホルダとは JSP 内で定義された場所で、WLP 仮想コンテンツ リポジトリから動的に取得した Web コンテンツを一度に 1 つずつ表示します。1 つ以上のコンテンツ クエリがプレースホルダに登録されている場合、プレースホルダは定義されているクエリおよびロジックを使用して、実行するクエリおよび表示するコンテンツ項目を指定します。コンテンツ クエリがデータを返さず、他に登録されているクエリがある場合、プレースホルダはそのクエリを実行します。それぞれのクエリに優先度、つまり重みがあり、表示する具体的なコンテンツを指定します。
たとえば、ペット ショップに対するプレースホルダでは、ユーザが鳥の愛好家かどうかを判断するキャンペーン クエリを使用して、鳥に関する特別なオファーを表示することができます (図 7-1 を参照)。

プレースホルダを作成する際には、表示するコンテンツを選択し、プレースホルダのクエリを選択してから、プレースホルダそのものを作成します。
プレースホルダは、ドキュメントの MIME タイプ属性を使用してブラウザに必要な HTML タグを生成します。デフォルトでは、プレースホルダは次の MIME タイプについてのみ、適切な HTML タグを生成します。
コンテンツを表示する場合、プレースホルダはドキュメントの MIME タイプを参照して、特定のドキュメント タイプに必要となる HTML タグを生成します。たとえば、画像タイプ ドキュメントを表示する場合、広告プレースホルダは、画像の表示に必要な <img> タグを生成する必要があります。デフォルトでは、広告プレースホルダはイメージやその他の種類のファイルを表示するための MIME タイプ (「プレースホルダ用コンテンツの選択」を参照) についてのみ、適切な HTML タグを生成します。
| 警告 : | <EMBED> タグは、すべてのブラウザで常に正常に動作するわけではありません。この動作は、コンフィグレーションしたプラグインによって異なります。 |
基本的な Java プログラミングに精通していれば、プレースホルダでその他の MIME タイプ用の HTML を生成できるようにするクラスを書くことも可能です。ビデオ クリップはその他の MIME タイプの一例です。
その他の MIME タイプをプレースフォルダに表示するには、次のタスクを実施する必要があります。
ブラウザが MIME タイプの表示に必要とする HTML を生成するには、Workshop for WebLogic を使用して、ユーティリティまたは EJB プロジェクトを作成し、Web プロジェクトの [プロパティ] ダイアログを使用してポータル Web アプリケーション サービスのファセットをプロジェクトに追加します。(EAR ファイルの一部である既存のユーティリティまたは EJB プロジェクトにこのファセットを追加することもできます。)次の手順で、com.bea.p13n.ad.AdContentProvider インタフェースを実行する Java クラスを作成します。このインタフェースの詳細については、Javadoc を参照してください。
クラスを CLASSPATH にあるディレクトリに保存した後は、WebLogic Portal にその存在を知らせる必要があります。これは手動または Administration Console で行うことができます。CLASSPATH にクラスを追加するには、方法 1 または方法 2 を選択します。
CLASSPATH に手動でクラスを追加するには、以下の手順を実行します。
META-INF\wps-config.xml ファイルのバックアップを作成します。 wps-config.xml ファイルを開き、<AdService> 要素を検索します。 <AdContentProvider
Name="MIME-type"
Provider="YourClass.class"
Properties="optional-properties-for-your-class"
>
</AdContentProvider>
AdContentProvider 要素に次の値を指定します。
CLASSPATH 環境変数で指定されるディレクトリより下の階層のファイルを保存した場合は、CLASSPATH ディレクトリより 1 レベル下げたディレクトリから開始するファイルのパス名を含める必要があります。
たとえば、システムの CLASSPATH に <PORTAL_APP>/classes を追加した場合、AVI ファイルをサポートするため、クラスを <PORTAL_APP>/classes/myclasses/MimeAvi.class として保存します。以下のコード例は、サンプル属性値を示しています。
<AdContentProvider
Name="video/x-msvideo"
Provider="myclasses.MimeAvi"
Properties=""
>
</AdContentProvider>
wps-config.xml ファイルに保存します。
CLASSPATH へのクラスの追加は、方法 2 の手順を使用しても行えます。
CLASSPATH に手動でクラスを追加する代わりに、コンテンツ プロバイダをアクティブ化すると、Administration Console を使用して以下の手順を実行できます。
com.bea.p13n.ad.adContentProvider インタフェースを実装する必要がある。| 警告 : | コマース API はWebLogic Portal 10.0 では非推奨です。 |
コンテンツをプレースホルダで使用する場合、コンテンツ項目に特定のプロパティを追加できます。「コンテンツの設定」を参照してください。
プレースホルダを作成する際には、次の 2 つの手順を実行します。
<ph:placeholder> JSP タグを、関連するすべての JSP で使用する。Java クラスの詳細については、「JSP Tag Javadoc」を参照してください。
各 <ph:placeholder> JSP タグに「name」属性を指定して、Workshop for WebLogic で作成したプレースホルダを参照する必要があります。
プレースホルダとは、WLP 仮想コンテンツ リポジトリから取得した 1 つの Web コンテンツを表示する JSP 内のあらかじめ決められた場所です。プレースホルダは、コンテンツの取得と表示にクエリを使用します。
デフォルトでは、プレースホルダでサポートしている MIME タイプは HTML、XML、プレーン テキスト、および画像です。プレースホルダでその他の MIME タイプを表示するには、「プレースホルダでのその他の MIME タイプの表示」を参照してください。
プレースホルダから返されるコンテンツは、ポートレットに表示されます。ユーザが、プレースホルダを含むポートレットまたはポータル デスクトップを参照すると、プレースホルダのルールおよびバックエンド ロジックがクエリを実行し、そのクエリに合致する 0 以上のコンテンツを取得し、返された項目の 1 つを表示します。取得されたコンテンツがなければ、何も表示されません。
プレースホルダのクエリは、2 つの異なった場所から実行されます。
プレースホルダには複数のクエリを含めることができるため、プレースホルダでは、ユーザがプレースホルダを含む JSP にアクセスするたびに異なったコンテンツを表示できます。以下の手順には、あるクエリの優先順位を設定して、プレースホルダ内にある他のクエリと比べてそのクエリが実行される機会を増やしたり減らしたりできる手順が含まれます。
プレースホルダはエンタープライズ アプリケーションを有効範囲としているため、プレースホルダはエンタープライズ アプリケーション内の任意の JSP に含めることができます。
| 注意 : | この章で示す手順は、[パッケージ・エクスプローラー] ビューの data\src フォルダに関係します。data ディレクトリおよび src ディレクトリは、名前が変更されている可能性があります。 |
.pla は、そのまま使用します。
この方法でプレースホルダに追加するクエリはすべて、デフォルトのクエリです (キャンペーン以外)。キャンペーンではこのプレースホルダにクエリを追加することができます。ただし、プレースホルダ自体にキャンペーン クエリを定義することはできません。キャンペーン クエリはキャンペーンで定義されます。
| 注意 : | [デザイン パレット] タブが表示されていない場合には、[リストの表示] をクリックして、非表示になっているその他のタブを確認します (図 7-3 を参照)。 |
| 注意 : | 選択するプロパティは、ユーザ プロファイル プロパティやセッション プロパティのようなプロパティ セット プロパティではなく、コンテンツ プロパティ (タイプ) です。 |
[値] タブ – 入力した値との比較に基づいてクエリを定義します。たとえば、investorRiskLevel プロパティが [高] にマークされているコンテンツを取得するようにクエリを設定できます。図 7-5 の例では、Web サイトの adTargetUrl を取得するようにクエリが設定されます。
[プロパティー] タブ – ユーザ プロファイル プロパティなど、別のタイプのプロパティから動的に与えられるプロパティ値に基づいてコンテンツ クエリを定義します。たとえば、静的なコンテンツ プロパティに基づいてクエリを作成するのではなく、クエリに挿入される現在のユーザの investorRiskLevel の値を読み込むクエリを作成できます。クエリはユーザごとに異なります。
<ph:placeholder> タグを追加します。プレースホルダ ファイル名をプレースホルダ タグに追加し、JSP を実行して結果を確認する必要があります。 | 注意 : | プレースホルダの代わりに <ad:adTarget> JSP タグを使用して、タグ内のコンテンツ クエリをハードコード化できます。詳細については、「プレースホルダに代わる <ad:adTarget> の使用」を参照してください。 |
プレースホルダは、デフォルト クエリとキャンペーン クエリの 2 つのタイプのクエリを実行できます。
どちらのタイプのクエリも構造は同じですが、別の場所から実行されます。
プレースホルダを含むページをユーザがロードするたびに、プレースホルダはデフォルト クエリを 1 つ実行できます。たとえば、特定のシェルのヘッダに、プレースホルダを含む JSP ファイルを定義します。そのプレースホルダにデフォルト クエリが含まれている場合、ユーザがデスクトップを表示または更新するたびに、ヘッダに異なるコンテンツが表示されます。
キャンペーンがプレースホルダも対象としている場合には、プレースホルダを設定して、キャンペーンのコンテンツのみを表示したり、キャンペーン コンテンツとデフォルト クエリ コンテンツを統合したりできます。
| ヒント : | プレースホルダにはコンテンツ項目が必ず表示されるので、プレースホルダにデフォルト クエリを設定することをお勧めします。 |
図 7-6 は、プレースホルダがデフォルト クエリまたはキャンペーン クエリから取得した画像をページ上のどこに表示するかを示しています。これは、クエリによって WLP の仮想コンテンツ リポジトリから取得された画像です。プレースホルダはさまざまな係数を使用して、実行するクエリを決定し、次に表示する取得済みのコンテンツ項目を決定します。

コンテンツ クエリを構築する場合には、Workshop for WebLogic で WebLogic Portal Expression 言語を使用できます。詳細なクエリ構築ウィンドウは、プレースホルダ、キャンペーン、およびコンテンツ セレクタのクエリを構築する際に、コンテンツに関連する JSP タグから利用できます。
複数のコンテンツ クエリがプレースホルダに登録されている場合、プレースホルダは定義されているクエリおよびロジックを使用して、実行するクエリおよび表示するコンテンツ項目を指定します。コンテンツ クエリがデータを返さず、他に登録されているクエリがある場合、プレースホルダはそのクエリを実行します。それぞれのクエリに優先度、つまり重みがあり、表示する具体的なコンテンツを指定します。
クエリには、<property> <comparator> <value> の 3 つの部分が含まれます。
コンテンツでは、次の 2 つのタイプのプロパティが利用できます。クエリでは両方のプロパティを使用できます。
詳細および明示的なコンテンツ プロパティ一覧については、「条件式を使用するコンテンツ クエリの構築」を参照してください。
比較演算子は、クエリのプロパティと入力した値を比較するロジックを持っています。コンテンツ項目がクエリの条件と一致する場合には、そのコンテンツ項目が返されます。詳細については、「比較演算子の使用」を参照してください。
値は、クエリが返す必要のあるコンテンツを表します。クエリに値を指定することにより、コンテンツ項目に格納されている値に基づいて取得または無視するコンテンツをクエリに指示します。詳細については、「値の入力」を参照してください。
クエリ句を and (&&) ロジックおよび or (||) ロジックによって結合し、数式と同様に括弧を使用して評価の順番を制御することにより、複数の独立したクエリ句を組み合わせることができます。これにより、複雑なクエリを作成することができます。詳細およびサンプル クエリについては、『コンテンツ管理ガイド』を参照してください。
プレースホルダが表示するコンテンツを選択するときは 2 つの処理が行われます。この節では、次のタスクについて説明します。
プレースホルダにデフォルト クエリを追加するか、Workshop for WebLogic でキャンペーン クエリを作成した場合、各クエリに優先度 (highest、high、normal、low、または lowest) を割り当てることができます。優先度が高いクエリほど、実行される可能性が他のクエリより高くなります。
クエリがドキュメントを検出しなかった場合、プレースホルダは別のクエリを選択して実行します。
キャンペーン クエリがある場合はデフォルト クエリを実行しないように定義することもできます。詳細については、「プレースホルダの変更」を参照してください。
クエリの対象範囲、およびコンテンツ管理システム内のドキュメントの数によっては、クエリが複数のコンテンツ項目を返す場合があります。デフォルトでは、プレースホルダは表示するコンテンツ項目をランダムに選択します。この選択を制御するために、adWeight というプロパティをコンテンツ項目に追加できます (「コンテンツの優先度の決定」を参照)。
コンテンツ項目に割り当てる adWeight の数値が大きいほど、そのコンテンツ項目がクエリで取得されたときにプレースホルダで表示される可能性が高くなります。
Workshop for WebLogicでプレースホルダ ファイルを作成した後で、以下のいずれかの方法を使用して、Workshop for WebLogic でプレースホルダを JSP に追加することができます。
include 文が自動的に追加されます。<ph:placeholder> JSP タグ ([Portal Content Placeholder] カテゴリにある) を、開いている JSP にドラッグし、タグの「name」属性を手動で入力する。(「SP デザイン パレットを参照 するには、[ウィンドウ|パースペクティブを開く|ページ フロー] を選択します。)タグ ライブラリの include 文は自動的に追加されます。図 7-7 は、「foo」というプレースホルダ ファイルと、そのプレースホルダ ファイルを参照する JSP タグを示しています。
プレースホルダを変更してパフォーマンスを向上させるには、「パフォーマンスを最適化するためのプレースホルダの管理」を参照してください。
JSP にコンテンツ項目を表示するには <ad:adTarget> JSP タグを使用することもできます。このタグは、プレースホルダのように定義ファイルには依存しません。タグの query 属性を使用してクエリを追加するだけです。クエリは 1 つまたは複数のコンテンツ項目 (プレースホルダが表示できるコンテンツ項目と同じタイプ) を取得し、タグは <ph:placeholder> タグと同じ方法で表示するコンテンツ項目を選択します。キャンペーンはクエリを <ad:adTarget> タグに入れないため、タグはパーソナライズされたコンテンツを表示できません。また、<pz:contentQuery> および <cm:search> を使用して、ランタイム クエリを実行して表示可能なコンテンツを返すこともできます。
| ヒント : | 1 つのコンテンツ項目を選んで、それ以降のリクエストで一致する項目を循環表示すると、バナースタイルのコンテンツを循環表示することができます。<ad:adTarget> JSP タグを使用できます。このタグは、表示するコンテンツを選択するために AdConflictResolver を使用します。各ノードの adWeight プロパティ (数値に変換されます) を、各ノードの相対的な重みとして取得し、次に、乱数を使用して使用するノードを選択します。重みが大きいほど、そのノードが表示される確率が高くなります。項目に adWeight プロパティがない場合、値は 1 であると見なされます。 |
<ad:adTarget> JSP タグのクラスの詳細については、「JSP Tag Javadoc」を参照してください。
次のコード例は、循環バナースタイル コンテンツの設定手順を示しています。
<%@ taglib uri="http://www.bea.com/servers/portal/tags/ad" prefix="ad"%>
<ad:adTarget query=" color == userProperty('GeneralInfo', 'FavoriteColor') "/>
|