管理者用ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

プレゼンテーション テンプレートの作成

Publisher は、コンテンツ アイテムを発行した際のコンテンツ アイテムの形式および表示を定義するために、プレゼンテーション テンプレートを使用します。データ入力テンプレートは、構造化されたコンテンツ アイテムを構成するプロパティを定義し、ユーザーがコンテンツ アイテムを作成する際にコンテンツ アイテム エディタに入力できるデータのタイプを決定します。プレゼンテーション テンプレートは、コンテンツ アイテムがプレビューまたは発行された際に表示されるデータをフォーマットするために使用されます。プレゼンテーション テンプレートには、基本的な書式、イメージ、定型句、およびコンテンツ アイテムの特定のプロパティの値に基づいて情報を表示するプログラミング ロジックなどが含まれています。プレゼンテーション テンプレートは、Publisher からのコンテンツに置き換えられる XML のようなタグを含むテキスト ファイルです。プレゼンテーション テンプレートは、Java ソース ファイル、HTML ファイル、CSS ファイルなど、いかなるテキスト ファイルのタイプも出力できます。

コンテンツ アイテムまたはデータ入力テンプレートがなくても発行することが可能なスタンドアロンのプレゼンテーション テンプレートを作成することもできます。これは、コンテンツ アイテムへのリンクをリストするシンプルな単一ページのポートレットを作成する場合に有用です。

製作者または管理者は、プレゼンテーション テンプレートを作成し、それらを関連するデータ入力テンプレートに添付するという役割を持ちます。プレゼンテーション テンプレートを作成および編集するには、これらのいずれかの役割を持つ必要があります。

この章では、以下の項目について説明します。

 


プレゼンテーション テンプレートの作成および編集

新しいプレゼンテーション テンプレートを作成するか、提供ポートレット テンプレートに含まれているデフォルトのプレゼンテーション テンプレートの 1 つを編集することによって、企業の用語またはコンテンツのニーズに適合させることができます。プレゼンテーション テンプレートを作成および編集するにはプレゼンテーション テンプレート エディタを使用します。

プレゼンテーション テンプレート エディタは、プレゼンテーション テンプレートを最初から作成する場合、標準のプレゼンテーション テンプレートを編集する場合、または、単独で発行可能なプレゼンテーション テンプレートを編集する場合のそれぞれの場合によって、若干異なる表示モードを持ちます。

この節では、以下の方法について説明します。

プレゼンテーション テンプレート エディタの使用方法

プレゼンテーション テンプレート エディタを起動するには、Publisher エクスプローラで、以下のいずれかの操作を実行してください。

ポートレット設定ウィザードおよびポートレット テンプレート設定ウィザードから、プレゼンテーション テンプレート エディタにアクセスすることもできます。

プレゼンテーション テンプレート エディタには、以下のフィールドが含まれています。

注意 : 新しいプレゼンテーション テンプレート (単独で発行可能なプレゼンテーション テンプレートを除く) を作成した際は、必ず関連付けられているデータ入力テンプレートから少なくとも 1 つのコンテンツ アイテムを作成してください。これによって、プレビュー サイトでプレゼンテーション テンプレートをプレビューすることが可能になります。

WYSIWYG エディタの使用方法の詳細については、「WYSIWYG エディタの使用方法」を参照してください。

タグ ヘルパーの詳細については、「タグ ヘルパーを使用してプレゼンテーション テンプレートのコードを作成する方法」を参照してください。

プレゼンテーション テンプレートのコードの詳細については、「プレゼンテーション テンプレートのコード」を参照してください。

WYSIWYG エディタの使用方法

WYSIWYG エディタで、プレゼンテーション テンプレートのコードを作成し、そのコードをプレゼンテーション テンプレート エディタにアップロードまたはコピーすることができます。

WYSIWYG エディタで、プレゼンテーション テンプレートのコードを作成するには、次の手順を実行します。

  1. 標準のウェブ ページとしてページを作成し、Publisher エレメントにはプレースホルダを使用します。
  2. プレゼンテーション テンプレート エディタでプレゼンテーション テンプレートを開き、[アップロード] をクリックして、ページを [コード] フィールドにインポートします。
警告 : ファイルをアップロードすると、[コード] フィールド内のすべてのテキストが上書きされます。上書きせずに既存のテンプレートに追加するには、コピー & ペーストを使用してください。
  1. タグ ヘルパーを使用して、プレースホルダを pcs タグに置き換えます。
  2. [検証] をクリックして、pcs タグの構文をチェックします。

WYSIWYG エディタを使用して、既存のテンプレートのコードを編集するには、次の手順を実行します。

  1. プレゼンテーション テンプレート エディタの [ダウンロード] をクリックして、ファイルをコンピュータに保存します。
  2. ファイルのコードを編集した後、[アップロード] をクリックして、プレゼンテーション テンプレート エディタにコードを入力します。

プレゼンテーション テンプレートのコード」も参照してください。

単独で発行可能なプレゼンテーション テンプレートの作成

他のコンテンツ アイテムへのリンクの単純なコレクションから構成される発行済みコンテンツ ポートレットをデザインする場合、コンテンツ アイテム、データ入力テンプレート、プレゼンテーション テンプレートという 3 つの要素が必要ではない場合があります。特に、データ入力テンプレートにプロパティが含まれていない場合は、必要ありません。代わりに、コンテンツ アイテムまたはデータ入力テンプレートがなくても発行することが可能なスタンドアロンのプレゼンテーション テンプレートを作成することができます。そのような単独で発行可能なプレゼンテーション テンプレートは、ポートレットに含まれるコンテンツ アイテムを参照するために、pcs 機能を使用します。データ入力テンプレートまたは関連付けられているコンテンツ アイテムを参照する必要はありません。

単独で発行可能なプレゼンテーション テンプレートを作成するには、次の手順を実行します。

  1. Publisher エクスプローラで、プレゼンテーション テンプレート用のフォルダを作成します。
  2. プレゼンテーション テンプレート エディタを起動します。
  3. プレゼンテーション テンプレートの [名前]、およびウェブ サーバーでファイル名として使用される [発行名] を入力します。システムは、テンプレートが発行された際に、.html 拡張子を追加します。
  4. [発行可能] フィールドで、[完全なページ] を選択します。
  5. [コード] セクションで、プレゼンテーション テンプレートのコードを入力またはアップロードします。
  6. 単独で発行可能なプレゼンテーション テンプレートでは、pcs 言語のすべてのタグおよび表現を使用することができます。以下の関数およびメソッドは、単独で発行可能なプレゼンテーション テンプレートのみに使用できます。

    • TemplateByPath(folder?,path): 単独で発行可能なプレゼンテーション テンプレートのみを返します。
    • folder.templates: フォルダ内の単独で発行可能なプレゼンテーション テンプレートを返します。
    • プレゼンテーション テンプレートのコードの構文の詳細については、「プレゼンテーション テンプレートのコード」を参照してください。

注意 : 単独で発行可能なプレゼンテーション テンプレートは、ワークフローで追跡することができません。

プレゼンテーション テンプレートのコピー、移動、名前の変更、および削除

他の Publisher コンポーネントと同様に、Publisher エクスプローラでプレゼンテーション テンプレートのコピー、移動、名前の変更、および削除を行うことができます。しかし、プレゼンテーション テンプレートにこれらの操作を実行する際は、以下の点に注意してください。

 


プレゼンテーション テンプレートのコード

すべての Publisher エレメントは、同じ構文および基本コンポーネントを使用します。Publisher エレメントを構築する前に、この節をお読みください。

この節では、Publisher エレメント (pcs タグ) の概要、および以下の項目に対する適切な構文について説明します。

Publisher エレメント (PCS タグ)

Publisher エレメント (タグ) は、XML エレメントのように形成されており、pcs というプレフィックスを持ちます。次に例を示します。

<pcs:tagname attributename=attributevalue...>Content 
</pcs:tagname>

発行時に、Publisher は、pcs タグを表現の値に置き換えます。表現がエラーとなった場合は、タグの内容に置き換えます。

発行時にテンプレートが処理される際、pcs タグ以外のテキストは変更されません。タグは、HTML エレメント、HTML タグ、および引用符で囲まれた文字列の中に含めることができます。

属性の値は、HTML または XML のように、一重引用符または二重引用符で囲まれている必要があります。

<pcs:value property="dog"> (正)
<pcs:value property='dog'> (正)
<pcs:value property=dog> (誤)

以下の表は、Publisher エレメントの要約を示します。各エレメントの詳細な説明については、後続の節を参照してください。

表 10-1 Publisher エレメント (PCS タグ)
エレメント
説明
<pcs:value>
Publisher のプロパティ値または表現の結果を表示します。次の Publisher のプロパティを受け付けます。テキスト、長いテキスト、整数、実数、ブール値、日付、および選択リスト。
<pcs:if>
指定された条件が True の場合、発行済みコンテンツ アイテムにコンテンツを表示します。コンテンツ アイテムのプロパティまたは文字列の比較など、正当なすべての表現を受け付けます。
<pcs:foreach>
オブジェクトのコレクションを通して操作を繰り返します。表現を受け付けます。タグの間のコードは、繰り返すごとに評価されます。
<pcs:include>
コンテンツ アイテムに参照されるプレゼンテーション テンプレートを挿入します。パスのみを受け付けます。
<pcs:insert>
現在のアイテムのコンポーネントとして、コンテンツ アイテムを表示します。表現またはパスを受け付けます。プレゼンテーション テンプレートが関連付けられているコンテンツ アイテムにのみ使用することができます。
<pcs:html>
プレゼンテーション テンプレート エディタの [コード] フィールドに、標準の HTML コードおよび XML コードを入力できるようにします。

Publisher エレメント (pcs タグ) をプレゼンテーション テンプレートに手動で入力するか、タグを作成するためにタグ ヘルパーを使用することができます。タグ ヘルパーについては、「タグ ヘルパーを使用してプレゼンテーション テンプレートのコードを作成する方法」およびオンライン ヘルプを参照してください。

Value エレメント <pcs:value>

<pcs:value> タグは、表現の結果または Publisher のプロパティ (テキスト、長いテキスト、整数、実数、ブール値、日付、および選択リスト) を表示するために使用できます。Publisher は、プロパティ値をテキスト文字列に変換します。

構文 :

<pcs:value expr="expression" (format="format pattern")>default text</pcs:value>

例 :

<pcs:value expr="headline"></pcs:value>
<pcs:value expr="article.author">Anonymous</pcs:value>
<pcs:value property='screenwriter.name'><pcs:value
property='writer.name'></pcs:value></pcs:value>
<img src="<pcs:value expr="photo.location"></pcs:value>">
<a href="<pcs:value property='homepage.location'></pcs:value>">
<pcs:value expr='creation_time' format="MMMM dd"></pcs:value>">

タグによって参照されている値が検出されなかった場合、エレメントのコンテンツが評価されます。タグ間のテキストが表示され、エレメント内の <pcs> タグはすべて変換されます。Value タグを使用して、参照されているプロパティの値に基づいた計算結果を表示することができます。次に例を示します。

<pcs:value expr="bonus - agent.commissions * agent.tax_rate">
</pcs:value>
日付形式

日付形式の属性はオプションです。指定されている場合、日付形式の属性は、発行済みドキュメント内に表示される日付のパターンを定義します。format 文字列は、Java 言語の SimpleDateFormat 定義に準拠します。日付の形式を指定することは、日付の値の一部、たとえば、時刻のみ、または月日のみを表示する場合などに有用です。次に例を示します。

<pcs:value expr='creation_time' format="MMMM dd"></pcs:value>">

format 属性が指定されていない場合、日付の形式は、com.plumtree.content.template.defaultDatePublishFormat というシステム設定プロパティの設定に基づいて設定されます。このプロパティが設定されていない場合、MM/dd/yyyy hh:mm aa というビルトイン形式が使用されます。

条件エレメント <pcs:if>

<pcs:if> タグは、指定した条件が True の場合にのみ、発行済みコンテンツ アイテムにコンテンツが表示されるようにするために使用されます。このタグは、コンテンツ アイテムのプロパティ (表現)、文字列の比較などの有効な表現を受け付けます。詳細については、「表現」を参照してください。コンテンツ アイテムが発行される際に、タグ内の表現が評価されます。表現が True の場合、エレメントのコンテンツが評価されます。True でない場合、エレメントは無視されます。

構文 :

<pcs:if expr="expression">conditional content</pcs:if>

例 :

<pcs:if expr="item.show_me"> 
<pcs:value expr="item.name"></pcs:value>
<pcs:value expr="item.description"></pcs:value>
</pcs:if> 
<pcs:if expr='Author=="Poe"'>
Books by Edgar Allen Poe: 
<pcs:value expr="booklist"></pcs:value>
</pcs:if>

プロパティに値が含まれているかどうかを判断するには、次のように null と比較してください。

<pcs:if expr="story.coauthor == null">...
注意 : テキスト プロパティが存在する場合、null と比較すると False が返されます。値が空白の文字列であるかどうかを確認するには、次のように空の文字列と比較します。
<pcs:value expr="story.coauthor == ''>... 

プロパティがデータ入力テンプレート内で定義されていることを確認するには、undefined と比較します。

<pcs:if expr="story.coauthor == undefined">...</pcs:if>

プロパティが定義されていない場合に、null と比較すると False が返されます。

以下の表は、異なるタイプの値がどういう場合に True あるいは False とみなされるかについて概説します。

表 10-2 値の評価 - True/False
値のタイプ
この場合、True とみなされる
この場合、False とみなされる
テキスト
長さが 0 より大きい
長さが 0
数字
ゼロではない
ゼロ
ブール値
True
False
null
常にみなされない
常にみなされる
アイテム
定義されている
定義されていない
コレクション
定義されている
定義されていない
列挙
少なくとも 1 つの選択を含む

繰り返しのエレメント <pcs:foreach>

<pcs:foreach> タグにより、オブジェクトのコレクションを通して操作を繰り返すことができます。表現を使用して、コレクションを参照できます。タグ間のコードは、回数の値ごとに評価されます。

ForEach エレメントはネストすることができます。ForEach エレメントは、そのコンテンツを (繰り返し) 評価する前に、そのエレメント自体を評価します。

構文 :

<pcs:foreach var="variable" expr="expression">
content
</pcs:foreach>

例 :

<pcs:foreach var="item" expr="article_list">
<pcs:value expr="item.headline"></pcs:value>
<pcs:value expr="item.story"></pcs:value>
This is item <pcs:value expr="item_position"></pcs:value> 
out of <pcs:value expr="item_size"></pcs:value>
</pcs:foreach>

<pcs:foreach var="item" expr="folderByPath('/authors/latest')">

タグが繰り返す値のリストは (変数に格納されているオブジェクトのタイプ)、表現の結果によって異なります。

表 10-3 変数のオブジェクト タイプ (表現の結果に基づく)
表現の結果
繰り返される値
変数のオブジェクト タイプ
リスト
リスト内の各値
コンテンツ アイテム
列挙
(すなわち、選択リスト)
選択された各値
選択された文字列
フォルダ
フォルダの各コンテンツ アイテム
コンテンツ アイテム
コンテンツ アイテム
唯一の項目がコンテンツ アイテムであるリスト
コンテンツ アイテム
プレゼンテーション テンプレート
唯一の項目が発行可能プレゼンテーション テンプレートであるリスト
プレゼンテーション テンプレート

各回数で、var = 属性で指定されている変数が、順に各値に設定されます。foreach タグのコンテンツ内で、変数をその他の PCS 言語表現で使用することができます。リストの表現が評価できない場合、foreach エレメントの拡張は失敗し、エレメントはドロップされます。

補助変数

ForEach タグ内で定義される補助変数を使用して、リストについての情報、またはリストの各アイテムについての情報を提供することができます。補助変数は、ForEach var 属性で定義されている変数名にサフィックスを付加することによって、名前が付けられます。ForEach タグで var 属性を省略することができます。その場合、エレメントの変数は定義されません。補助変数が定義されている場合は、プレフィックスなしで使用することができます。

以下の補助変数が定義されています。

注意 : 変数のサフィックス (VariableName_position) とプロパティの参照 (VariableName.name) を混同しないように注意してください。

Include エレメント <pcs:include>

<pcs:include> タグは、参照されているプレゼンテーション テンプレートをコンテンツ アイテムに挿入します。テンプレートは、パスのみによって参照することができます。パスには、相対パスまたは絶対パスを使用することができます。相対パスは、コンテンツ アイテムではなく、テンプレートに対する相対的なパスです。

Server Side Include のように、Include タグは、主に、ヘッダ、フッタ、およびその他の定型コンテンツをページ内に表示するために使用されます。この方法を使用すると、異なるタイプの発行済みコンテンツに渡って定型コンテンツを統一し、共通のコードを 1 つのテンプレートにまとめることによって、ページの定型部分への変更を容易に行うことができます。

Include タグを使用する前に、ページに含める必要のあるコンテンツを含む別のプレゼンテーション テンプレートを作成してください。

指定されたテンプレートにアクセスできない場合、include は失敗し、エレメントのコンテンツが評価されます。下記の例では、パスが存在しない場合、「Copyright 2003」と表示されます。

構文 :

<pcs:include templatepath="path">default text</pcs:include>

例 :

<pcs:include templatepath="/boilerplate/footer">Copyright 2003
</pcs:include>

Insert エレメント <pcs:insert>

<pcs:insert> タグは、現在のアイテムのコンポーネントとして、コンテンツ アイテムを表示します。表現またはパスによって、2 番目のコンテンツ アイテムを参照することができます。Insert タグは、関連付けられたプレゼンテーション テンプレートを持つ Publisher のコンテンツ アイテムにのみ使用することができます。

表現またはパスの評価の結果は、コンテンツ アイテムである必要があります。コンテンツ アイテムのプレゼンテーション テンプレートは、直接発行される場合と同じ規則に従って選択および実行されます。結果は Insert エレメントを置き換えます。

指定したコンテンツ アイテムにアクセスできない場合、insert は失敗し、代わりにエレメントのコンテンツが評価されます。以下のような失敗が発生する可能性があります。

以下の最初の例では、word_of_the_day というプロパティが検出されない場合、「See the dictionary」と表示されます。

構文 :

<pcs:insert expr="expression"></pcs:insert>

または

<pcs:insert path="path"></pcs:insert>

表現およびパスの構文の詳細については、前章を参照してください。

例 :

<pcs:insert expr="word_of_the_day">See the dictionary.</pcs:insert>
<pcs:insert path="/news/latest"></pcs:insert>

HTML エレメント <pcs:html>

標準の HTML コードおよび XML コードは、プレゼンテーション テンプレート エディタの [コード] フィールドに直接入力できます。しかし、Publisher オブジェクトへの参照を含めた場合、HTML エディタで正確に評価できないコードになってしまうことがあります。<pcs:html> タグは、このような問題を解決します。

<pcs:html> タグは、通常、ユーザーに表示される完全に構成された HTML または XML エレメントによって置き換えられます。このエレメントは、誤ったコードとして評価されない構文を使用することによって、標準の WYSIWYG エディタを使用して容易にプレゼンテーション テンプレートの編集が行えるようにします。

Publisher は、<pcs:html:xxx> というエレメントを、タグ名が <xxx> である HTML エレメントに置き換えます。開始タグには、<pcs:html:xxx> エレメントの属性に基づく特定の属性が設定されます。任意の数の属性を使用することができます。各属性は、表現属性またはリテラル属性のどちらかになります。

構文 :

<pcs:html:xxx ( style="UNARY|EMPTY|ORPHAN" )?( content="OMIT" )?( expr:yyy="expr" | attr:yyy="value" )* >content of element
</pcs:html:xxx>

例 :

<pcs:html:a expr:href="nextchapter.location">Next Chapter
</pcs:html:a>
<pcs:html:a attr:href="chap2/overview.htm">Next Chapter
</pcs:html:a>

タグ間のテキストは、結果となる HTML コードに基づいて評価されます。上記の例の場合、参照されている Publisher のプロパティ (nextchapter.location) または静的な位置 (chap2/overview.htm) として定義される次章への「Next Chapter」リンクが作成されます。

デフォルトで、HTML タグによって生成されるエレメントは、開始タグ、終了タグ、およびコンテンツを持ちます。この形式を上書きするには、追加の style および content 属性を使用します (次節参照)。

Style および Content 属性

オプションで使用できる HTML タグの style および content 属性は、プレゼンテーション テンプレートで、標準の HTML タグ形式を上書きできるようにします。

XML は、開始タグおよび終了タグを結合する「空エレメント」タグ <FOO/> をサポートしています。style="EMPTY" 属性を含めた場合、<pcs:html> タグは、空エレメント タグを生成します。この属性が指定された場合、pcs エレメントにコンテンツが含まれている場合でも、コンテンツは生成されません。

一部のブラウザは、対応する終了タグのない開始タグをサポートしています。<IMG ...> で、対応する </IMG> がない場合などです。style="UNARY" 属性を指定した場合、<pcs:html> タグは、このようなタグを生成します。この属性が指定された場合、pcs エレメントによって生成されたすべてのコンテンツは、開始タグの後に配置されます。

ごくまれなケースですが、HTML は、開始タグのない終了タグをサポートします。style="ORPHAN" 属性を指定した場合、<pcs:html> タグは、このようなタグを生成します。この属性が指定された場合、エレメントによって生成されたすべてのコンテンツは、終了タグの前に配置されます。

コンテンツが生成されないようにするには、content="OMIT" という属性を含めてください (コンテンツは評価されないため、コンテンツに起因する問題が発生することはありません)。

たとえば、<pcs:html:foo>Stuff</pcs:html:foo> というエレメントの場合、追加属性を指定することによって下記のコンテンツが生成されます。

表 10-4 Style 属性 (<pcs:html> タグ)
属性
結果
(追加属性なし)
<foo>Stuff</foo>
style="UNARY"
<foo>Stuff
style="ORPHAN"
Stuff</foo>
style="EMPTY"
<foo/>
content="OMIT"
<foo></foo>
style="UNARY" content="OMIT"
<foo>
style="ORPHAN" content="OMIT"
</foo>
style="EMPTY" content="OMIT" (redundant)
<foo/>

プロパティ名

プレゼンテーション テンプレートは、コンテンツ アイテムのコンテキストで評価されます (単独で発行されるプレゼンテーション テンプレートを除く)。コンテンツ アイテムに対応するデータ入力テンプレートは、ユーザー定義のすべてのプロパティの名前およびタイプを制御します。また、すべてのコンテンツ アイテムは、システム定義のプロパティ (name プロパティなど) のセットを持ちます。システム定義およびユーザー定義のプロパティの名前は、現在のコンテンツ アイテムの対応するプロパティ値を参照するために、テンプレートで使用することができます。

最も簡単なプロパティ表現は、発行されるコンテンツ アイテム内の 1 つのプロパティの名前です。

<pcs:tag property="Headline">

さらに高度なプロパティ表現の使用方法は、ドット付きの表現を使用することです。ドット付きの表現は、左から右に評価され、ドットの左にある各プロパティは、ドットの右に名前があるプロパティを持つものとして評価されます。

以下の例では、「author」は、「bio」プロパティを持つコンテンツ アイテムを参照する現在のコンテンツ アイテムのプロパティであり、「bio」は、「hometown」プロパティを持つ別のコンテンツ アイテムを参照します。

<pcs:tag property="author.bio.hometown"> 

システムがプロパティの名前で固有の文字として扱うのは、アルファベット (a ~ z) および数字 (0 ~ 9) のみです。その他のすべての文字 (句読点、空白) は、同じ文字として扱われ、アンダースコア (「_」) に置き換えられます。大文字および小文字は区別されません。たとえば、以下のタグはすべて同じとして扱われます。

<pcs:tag property="jug_head">
<pcs:tag property="JUG HEAD">
<pcs:tag property="Jug+Head">
警告 : データ入力テンプレートでプロパティの名前を変更した場合、関連付けられているプレゼンテーション テンプレート内の参照も変更する必要があります。

システム定義のプロパティ

システム定義のプロパティは、現在のコンテンツ アイテム、または現在のコンテンツ アイテムに関連付けられているいかなる Publisher のオブジェクトにも適用することができます。プロパティは、表現の前の値 (ドットの左側) に適用されます。プロパティの前にドットがない場合、プロパティは現在のコンテンツ アイテムに適用されます。

警告 : この節でリストされているプロパティの名前は、Publisher によって使用されています。同じ名前を持つプロパティを作成した場合、新しいプロパティは、システム定義のプロパティを上書きします。たとえば、location という名前のプロパティを作成した場合、Publisher の表現を使用して、そのコンテンツ アイテムの URL にアクセスできなくなります。これは、コンテンツ アイテムから別の場所にリダイレクトする必要がある場合に使用できます。

以下のプロパティは、システムによって定義されています。

表 10-5 システム定義のプロパティ
プロパティ
説明
location
Publisher オブジェクトが発行された場所、または発行される場所を示す URL。ページにリンクを作成する場合に役立ちます。このプロパティは、テキストとして扱われます。
次に対して有効 : コンテンツ アイテム、ファイル プロパティ、イメージ プロパティ、フォルダ、発行可能なプレゼンテーション テンプレート。
created
Publisher オブジェクトが作成された日付。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
createdBy
Publisher オブジェクトを作成したユーザーの名前。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
modified
Publisher オブジェクトが最後に変更された日付。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
modifiedBy
Publisher オブジェクトを最後に変更したユーザーの名前。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
published
Publisher オブジェクトが最後に発行された日付。
次に対して有効 : コンテンツ アイテム、発行可能なプレゼンテーション テンプレート。
publishedBy
Publisher オブジェクトを最後に発行したユーザーの名前。
次に対して有効 : コンテンツ アイテム、発行可能なプレゼンテーション テンプレート。
name
Publisher エクスプローラに表示される Publisher オブジェクトの名前。このプロパティは、テキストとして扱われます。
次に対して有効 : コンテンツ アイテム、ファイル プロパティ、イメージ プロパティ、フォルダ、発行可能なプレゼンテーション テンプレート。
pcs_id
システムによって Publisher オブジェクトに割り当てられる固有識別子の文字列。オブジェクトが存在する限り、オブジェクトの名前が変更されたり、またはオブジェクトが別のフォルダに移動されても、固有 ID は変更されません。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
pcs_path
フォルダ階層内の Publisher オブジェクトへの完全なパス。パスは、「/」で始まり、パスの各コンポーネントは、別の「/」によって次のコンポーネントから分離されます。名前の中の特殊文字は、アンダースコアに変換されません。したがって、コンポーネントの名前にスラッシュ記号が含まれている場合、混乱を招く可能性があります。
次に対して有効 : コンテンツ アイテム、フォルダ、列挙、発行可能なプレゼンテーション テンプレート。
height
ピクセル単位の垂直寸法。このプロパティは、整数として扱われます。
次に対して有効 : イメージ プロパティ。
width
ピクセル単位の水平寸法。このプロパティは、整数として扱われます。
次に対して有効 : イメージ プロパティ。
length
オブジェクトのタイプに適切な単位によるオブジェクトの長さ。
次に対して有効 : テキストを生成する表現 (結果はテキスト内の文字数)、リストを生成する表現 (結果はリスト内の値の数)。
folder
Publisher オブジェクトを含むフォルダ。
次に対して有効 : コンテンツ アイテム、フォルダ、発行可能なプレゼンテーション テンプレート。
item
現在のコンテンツ アイテム。このプロパティは、現在のコンテンツ アイテムにアクセスするために使用できます。これ以外に現在のオブジェクトと別のアイテムへの参照を比較する方法はありません。2 つのアイテムの参照が同じかどうかを確認する表現に役立ちます。
次に対して有効 : コンテンツ アイテム、発行可能なプレゼンテーション テンプレート。
subfolders
サブフォルダのリスト。
次に対して有効 : フォルダ。

表現

プロパティを受け付ける Publisher タグには、基本的な表現も使用することができます。表現属性の値は以下のいずれかになります。

プロパティ名

表現は、Publisher のプロパティを参照するために使用することができます。プロパティを参照するには、「プロパティ名」に記載されている規則に従ってください。

定数

定数表現は、数字定数または文字列定数のいずれかになります。

数字定数とは、任意の桁の数字文字列です。数字文字列の前にマイナス記号を置くことができます。また、数字文字列には、小数点文字を 1 つのみ含めることができます。小数点がある場合、小数点の両側に、少なくとも 1 桁ずつある必要があります。下記は、正当な表現の例です。

<pcs:tag expr="43">

<pcs:tag expr="-43">

<pcs:tag expr="4.3">

文字列定数は、一重引用符または二重引用符に囲まれている文字の文字列です。表現の引用符を属性値の周りの引用符と混乱する可能性がある場合、XML のエスケープ ルールを適用する必要があります。下記は、正当な表現の例です。

<pcs:tag expr="'hello'">

<pcs:tag expr="'goodbye'"

<pcs:tag expr="'don't yell "e;help!"e;h'">

表現

すべての表現は、表現属性内でサポートされます。表現は、関係演算子、算術演算子、論理演算子を使用して、比較および結合することができます (詳細については、以下の節を参照)。

注意 : 比較では、大文字と小文字が区別されます。プロパティ名の場合は区別されません。文字列には、スペースおよび句読点記号を使用することができます。プロパティ名には使用できません。

例 :

expr="story.author == 'Joe'"
expr="17 != magic_number" 
expr=""story_list.length != item.reference_count" 
expr="item.interest_level > item.skill + item.ref.skill"
expr="'hello world' == 'hello' + ' ' + 'world'"
expr="4" (0 でない整数は、常に true として扱われます)
関係演算子

以下の関係演算子は、表現属性でサポートされています。

表 10-6 関係演算子
演算子
意味
JavaScript で同等の演算子
==
等しい
==
!=
等しくない
!=
&gt;
次より大きい
>
&ge;
次以上
>=
&lt;
次より小さい
<
&le;
次以下
<=

注意 : 大なり記号および小なり記号は、XML では特別な意味を持ち、予約されているので、代わりに上記の同等の演算子を使用する必要があります。
() <pcs:if expr="subscriber_count > 100">...
(正) <pcs:if expr="subscriber_count &gt; 100">...

これらの演算子を使用した比較表現の結果は、True または False というブール値になります。

2 つの文字列を比較する際は、大文字と小文字が区別されます。

expr="'blue'=='Blue'" の結果は false です。

プロパティに値が含まれているかどうかを判断するには、次のように null と比較してください。

expr="story.coauthor == null"

さまざまなタイプの値を比較する場合、以下の規則が適用されます。

表 10-7 比較 - 規則
値のタイプ
等価演算子 (== と !=)
関係演算子 (&gt;、&ge;、&lt;、&le;)
テキスト対テキスト
同じ順番で全く同じ文字
最初に異なる文字をアルファベット順で比較
数字対数字
同じ数字の値
数値の相対比較
列挙対列挙
列挙の同じタイプに基づいており、同じ選択を含む
該当しない
テキスト対数値
テキストが数値に変換され、比較される
テキストが数値に変換され、比較される
テキスト対列挙
列挙がテキストに変換され、比較される
該当しない
アイテム対アイテム
同じアイテム
該当しない

算術演算子

以下の算術演算子が定義されています。

表 10-8 算術演算子
演算子
意味
備考
+
数値の加算またはテキストの連結
両方のオペランドが数値である場合、それらの合計を計算します。それ以外の場合は、オペランドをテキストとして扱います。
-
数値の減算
いずれかのオペランドがテキストである場合、計算する前に数値に変換します。
*
数値の乗算
上記と同じ
/
数値の除算
上記と同じ
%
数値の剰余
上記と同じ

これらの演算子は、JavaScript の演算子と同じです。JavaScript と同様、すべての数値は実数として扱われます。したがって、2 つのプロパティ値が整数でも、それらのプロパティ値を計算すると、結果は実数になります。たとえば、5/4 は、1.25 です。結果が、1 になる言語とは異なります。

論理演算子

以下の論理演算子が定義されています。

表 10-9 論理演算子
演算子
意味
JavaScript で同等の演算子
&and;
論理 AND
&&
&or;
論理 OR
||
!
論理 NOT
!

JavaScript と同様、いくつかの同様の論理演算子の表現の結果は、論理演算子を満たす最初のオペランドの値になります。残りのオペランドは評価されません。AND 演算子は、False と評価された最初のオペランドによって満たされます。OR 演算子は、True と評価された最初のオペランドによって満たされます。以下の表では、いくつかの例を示します。

表 10-10 論理表現の例
表現
結果
"foo" &and; "bar"
"bar"
"" &and; "bar"
""
"" &and; 0
""
"foo" &or; "bar"
"foo"
"" &or; "bar" &or; "bax"
"bar"
"" &or; 0
0
!""
True
!"foo"
False

演算子の優先順位

演算子が評価される順番は、JavaScript の場合と同じです。高い優先順位を持つ操作は、低い優先順位を持つ操作より前に実行されます。同じ優先順位を持つ演算子は、左から右に評価されます。以下の演算子のリストでは、優先順位が最も高い演算子から最も低い演算子の順にリストされています。

最も高い

!

( )

.

* / %

+ -

&gt; &ge; &lt; &le;

== !=

&and;

&or;

最も低い

関数

表現で使用できる関数は、システムで予め定義されているものに限られます。

表 10-11 プロパティで使用できる関数
関数
パラメータ
戻り値
itemByPath(path)
itemByPath(folder, path)
path : 文字列
folder : フォルダ
パスによって特定されるコンテンツ アイテム
TemplateByPath(folder, path)
path : 文字列
folder : フォルダ
パスによって特定される発行可能なプレゼンテーション テンプレート
folderByPath(path)
folderByPath(folder, path)
path : 文字列
folder : フォルダ
パスの文字列によって特定されるフォルダ
objectByUid(uid)
uid : 文字列
(Publisher から取得される固有識別子)
UID によって特定されるオブジェクト

注意 : 相対パスは、発行されるコンテンツ アイテムではなく、プレゼンテーション テンプレートに基づきます。アイテムに基づいたフォルダの相対パスを取得するには、以下を使用します。
<pcs:value expr="itemByPath(folder, 'my/sub/folder').name"> **Expression Failed**</pcs:value>

パスの使用方法の詳細については、後述の「パス」の節を参照してください。

以下の例で示すように、関数を使用して、別のコンテンツ アイテムのプロパティにアクセスすることができます。

<pcs:value expr='itemByPath("/News/Headlines")'>**Expression Failed **</pcs:value>

最初の例は、プロパティが取得できないため、**Expression Failed** という結果になります。これは、以下に示すように、プロパティへの参照を追加することによって修正することができます。

<pcs:value expr='itemByPath("/News/Headlines").name'>
**Expression Failed **</pcs:value>

パス

多くの Publisher タグは、Publisher オブジェクトを参照するために、パスを使用します。パスの文字列は、ファイルシステムのパスまたは URL と同じです。すなわち、複数の名前を含む文字列をスラッシュ (/) で分離したものです。パス内の最後の名前は、対象となるオブジェクトの名前であり、それより前に示されている名前は、そのオブジェクトにたどり着くまでに通過するフォルダの名前です。

パスがスラッシュで始まる場合、それは絶対パスです。オブジェクトを特定するための検索は、発行サイトのルート フォルダから開始されます。

path="/library/includes/music/symphony"

この例では、まずサイトのルート フォルダで、「library」という名前のフォルダが検索されます。次に、そのフォルダで、「includes」という名前のフォルダが検索されます。次に、そのフォルダで、「music」という名前のフォルダが検索されます。次に、そのフォルダで、「symphony」というオブジェクトが検索され、そのオブジェクトがタグによって使用されます。

パスがスラッシュで始まらない場合、それは相対パスです。オブジェクトを特定するための検索は、使用中のテンプレートまたはコンテンツ アイテムを含むフォルダから開始されます。

path="show/public/navbar"

この例では、まず現在のフォルダで、「show」という名前のフォルダが検索されます。次に、そのフォルダで、「public」という名前のフォルダが検索されます。次に、そのフォルダで、「navbar」というオブジェクトが検索され、そのオブジェクトがタグによって使用されます。

警告 : フォルダ名またはオブジェクト名に含まれているスペースまたは特殊文字は、パスではアンダースコア (_) に置き換える必要があります。
path="Related_Templates/july_and_august/summer_festival"

フォルダ名およびテンプレート名に関しては、大文字および小文字が区別されません。以下のコードは、上記のパスと同じとして扱われます。

path="related_templates/July_and_August/SUMMER_FESTIVAL"

特別なパス コンポーネントである「..」(2 つのピリオド、一般的に「ドットドット」と呼ばれる) は、現在のフォルダの 1 つ上のフォルダを示します。

path='../../vegetables/onions'

この例の場合、現在のフォルダで開始し、そのフォルダを含む 1 つ上のフォルダにアクセスし、更にそのフォルダの 1 つ上のフォルダにアクセスし、次に、「vegetables」という 1 つ下のフォルダにアクセスし、最後に、「onions」というオブジェクトにアクセスします。

ルート フォルダの上にはフォルダが無いため、「..」をルート フォルダに適用することは、存在しないフォルダにアクセスするのと同じ結果になります。

 


タグ ヘルパーを使用してプレゼンテーション テンプレートのコードを作成する方法

タグ ヘルパーは、Publisher エレメント、イメージ、およびポータル コントロールをプレゼンテーション テンプレートに含めるために利用できるインタフェースです。タグ ヘルパーの中の各タブ ページでは、プレゼンテーション テンプレート エディタの [コード] フィールドに追加することが可能な固有のタグを作成します。タグ ヘルパー ウィンドウのタブをクリックして、適切なタグにアクセスしてください。

タグ ヘルパーの詳細については、オンライン ヘルプを参照してください。

Publisher エレメント (pcs タグ) の詳細については、「プレゼンテーション テンプレートのコード」を参照してください。

ポータル コントロールの詳細については、『AquaLogic User Interaction Development Guide』(http://www.beasys.co.jp/dev2dev/) を参照してください。

 


CSS および JavaScript ファイルの使用方法

ウェブ サイトのコンテンツ アイテムを作成する場合、カスケーディング スタイル シート (.css) ファイル、または js (JavaScript) ファイル、またはその両方を使用して、複数ウェブ ページの間の一貫性を確保することができます。css ファイルおよび js ファイルを管理するには、それらのファイルを Publisher データベースに格納し、ウェブ サイトに発行します。

  1. まず任意の適切なプログラムで、css ファイルまたは js ファイルを作成します。
  2. Publisher エクスプローラで、手順 1 で作成した css または JavaScript ファイルからのテキストを含めるためのコンテンツ アイテムを作成します。
    1. 長いテキスト プロパティ タイプのプロパティを 1 つ持つデータ入力テンプレートを作成します。
    2. プレゼンテーション テンプレートを作成します。Value タグを使用して、データ入力テンプレート内に作成したプロパティを参照します。
    3. データ入力テンプレートからコンテンツ アイテムを作成し、css または js ファイルの内容をそのコンテンツ アイテムに貼り付けます。[発行名] には、ウェブへ発行した際、そのファイルに設定する名前を指定し、その後に拡張子 (.css または .js) を付けます。
  3. Publisher エクスプローラで、.css または .js コンテンツ アイテムとの間のリンクとして使用するための別のコンテンツ アイテムを作成します。ウェブ ページは、手順 2 で作成されたコンテンツ アイテムではなく、この手順で作成されたコンテンツ アイテムを参照する必要があります。
    1. コンテンツ アイテムをリンクさせるためのデータ入力テンプレートを作成します。このデータ入力テンプレートには、Item プロパティ タイプのプロパティを 1 つ設定する必要があります。
    2. データ入力テンプレート用のプレゼンテーション テンプレートを作成します。HTML タグを使用して、.css または .js コンテンツ アイテムおよびその他の変数の名前を指定します。次に例を示します。
    3. JavaScript (.js) :

       <pcs:html:script attr:language="JavaScript" expr:src="item_name.location">
      </pcs:html:SCRIPT>

      カスケーディング スタイル シート (.css) :

       <pcs:html:link attr:rel="stylesheet" expr:href="css_link.location" attr:type="text/css"></pcs:html:link>
    4. 手順 3a で作成したデータ入力テンプレートからコンテンツ アイテムを作成します。Item プロパティで、手順 2c で作成した .css または .js ファイルを含むコンテンツ アイテムの名前を入力します。
  4. Publisher エクスプローラで、ウェブ ページ用のデータ入力テンプレートおよびコンテンツ アイテムを作成します。
    1. ウェブ ページに適合したプロパティおよびプロパティ タイプを持つデータ入力テンプレートを作成します。
    2. データ入力テンプレート用のプレゼンテーション テンプレートを作成します。Insert タグを使用して、手順 3 で作成したコンテンツ アイテムを挿入します。例 : <hps:insert path="/assets/css_linked_item"></hps:insert>
    3. 手順 4a で作成したデータ入力テンプレートから、.css または .js ファイルを使用するコンテンツ アイテムを作成します。
警告 : 手順 2 および手順 3 で作成したコンテンツ アイテムをウェブ ページとともに発行する必要があります。

別の .css または JavaScript ファイルを適用する必要がある場合、新しい .css または .js ファイルのコンテンツを、手順 2c で作成したコンテンツ アイテムにコピーし、ウェブ サイトに再発行します。

 


プレゼンテーション テンプレート ツール

Publisher では、JSP 形式でプレゼンテーション テンプレート ツールが提供されます。プレゼンテーション テンプレートの作成者はこれらのツールを使用して、発行されたコンテンツから Publisher の機能にアクセスできます。

以下の JSP があります。

content_item.jsp

これは、コンテンツ アイテム エディタを開くために使用します。

表 10-12 content_item.jsp のパラメータ
パラメータ
説明
fid
新しいコンテンツ アイテムを作成するフォルダの ID。
dfid
det パラメータで指定したデータ入力テンプレートを格納するフォルダの ID。
det
新しいコンテンツ アイテムを作成するために使用するデータ入力テンプレートの名前。データ入力テンプレートは、dfid または fid で指定したいずれかのフォルダ内に格納される必要があります。
ctid
新しいコンテンツ アイテムを作成するために使用するデータ入力テンプレートの ID。
ciid
コンテンツ アイテム エディタで開くコンテンツ アイテムの ID。
checkout
ciid で指定したコンテンツ アイテムをチェックアウトするには、True に設定します。
view
「submit」に設定すると、ユーザーはコンテンツ アイテム エディタの簡易提出ビューを取得します。

例 :

記事 (articles) フォルダ内に新しいコンテンツ アイテムをニュース記事データ入力テンプレート (これも記事フォルダ内にある) を使用して作成するには、次のように指定します。

<pcs:value expr='pcs_location'></pcs:value>/published_tools/content_item.jsp?fid=<pcs:valueexpr="folderByPath(Articles').pcs_id"></pcs:value>&det=News%20Article"

既存のコンテンツ アイテムを編集するには次のように指定します。

<pcs:value expr='pcs_location'></pcs:value>/published_tools/content_item.jsp?ciid=<pcs:value expr='pcs_id'></pcs:value>

create_folder.jsp

これは、ユーザーに新しいフォルダを作成するように促します。

表 10-13 create_folder.jsp のパラメータ
パラメータ
説明
fid
新しいフォルダを作成する親フォルダの ID。

例:

ユーザーに記事 (articles) フォルダ内に新しいフォルダを作成するように促すには、次のように指定します。

<pcs:value expr="pcs_location"></pcs:value>/published_tools/create_folder.jsp?<pcs:value expr="folderByPath(Articles').pcs_id"></pcs:value>

search.jsp

これは、特定のポートレットに関連付けされた発行済みコンテンツ アイテムを検索するために使用します。

表 10-14 search.jsp のパラメータ
パラメータ
説明
fid
ここで指定したフォルダ ID と同じポートレットに関連付けられているコンテンツ アイテムを検索します。指定されていない場合、現在のポートレットに関連付けられているコンテンツ アイテムを検索します (存在する場合)。
searchtext
検索する文字列。

例:

現在のポートレットに関連付けされたコンテンツ アイテムで文字列「hello world」を検索するには、次のように指定します。

<pcs:value expr="pcs_location"></pcs:value>/published_tools/search.jsp?searchtext=hello%20world

注意 : 上記の JSP はすべて、操作が行われるフォルダのセキュリティに従います。


  ページの先頭      前  次