|
Publisher は、コンテンツ アイテムを発行した際のコンテンツ アイテムの形式および表示を定義するために、プレゼンテーション テンプレートを使用します。データ入力テンプレートは、構造化されたコンテンツ アイテムを構成するプロパティを定義し、ユーザーがコンテンツ アイテムを作成する際にコンテンツ アイテム エディタに入力できるデータのタイプを決定します。プレゼンテーション テンプレートは、コンテンツ アイテムがプレビューまたは発行された際に表示されるデータをフォーマットするために使用されます。プレゼンテーション テンプレートには、基本的な書式、イメージ、定型句、およびコンテンツ アイテムの特定のプロパティの値に基づいて情報を表示するプログラミング ロジックなどが含まれています。プレゼンテーション テンプレートは、Publisher からのコンテンツに置き換えられる XML のようなタグを含むテキスト ファイルです。プレゼンテーション テンプレートは、Java ソース ファイル、HTML ファイル、CSS ファイルなど、いかなるテキスト ファイルのタイプも出力できます。
コンテンツ アイテムまたはデータ入力テンプレートがなくても発行することが可能なスタンドアロンのプレゼンテーション テンプレートを作成することもできます。これは、コンテンツ アイテムへのリンクをリストするシンプルな単一ページのポートレットを作成する場合に有用です。
製作者または管理者は、プレゼンテーション テンプレートを作成し、それらを関連するデータ入力テンプレートに添付するという役割を持ちます。プレゼンテーション テンプレートを作成および編集するには、これらのいずれかの役割を持つ必要があります。
新しいプレゼンテーション テンプレートを作成するか、提供ポートレット テンプレートに含まれているデフォルトのプレゼンテーション テンプレートの 1 つを編集することによって、企業の用語またはコンテンツのニーズに適合させることができます。プレゼンテーション テンプレートを作成および編集するにはプレゼンテーション テンプレート エディタを使用します。
プレゼンテーション テンプレート エディタは、プレゼンテーション テンプレートを最初から作成する場合、標準のプレゼンテーション テンプレートを編集する場合、または、単独で発行可能なプレゼンテーション テンプレートを編集する場合のそれぞれの場合によって、若干異なる表示モードを持ちます。
プレゼンテーション テンプレート エディタを起動するには、Publisher エクスプローラで、以下のいずれかの操作を実行してください。
ポートレット設定ウィザードおよびポートレット テンプレート設定ウィザードから、プレゼンテーション テンプレート エディタにアクセスすることもできます。
プレゼンテーション テンプレート エディタには、以下のフィールドが含まれています。
| 注意 : | 既存のプレゼンテーション テンプレートの名前を変更しても、添付されたデータ入力テンプレートとの関連付けは解除されません。別のプレゼンテーション テンプレートによって参照されているプレゼンテーション テンプレートの名前を変更した場合、参照の名前も変更する必要があります。 |
発行可能なプレゼンテーション テンプレートを作成しない場合は、このフィールドを無視して、プレゼンテーション テンプレートに添付するデータ入力テンプレートを選択します。このフィールドは、[拡張子] フィールドに置き換わります。
単独で発行可能なプレゼンテーション テンプレートを作成する場合は、データ入力テンプレートを添付しないでください。
単独で発行可能なプレゼンテーション テンプレートを作成または編集する場合は、[完全なページ] を選択する必要があります。
| 注意 : | 完全なページのプレゼンテーション テンプレートと、単独で発行可能なプレゼンテーション テンプレートは同一ではないことに注意してください。単独で発行可能なプレゼンテーション テンプレートは、完全なページのテンプレートである必要がありますが、完全なページのテンプレートは、必ずしも単独で発行可能なプレゼンテーション テンプレートである必要はありません。完全なページという指定は、プレゼンテーション テンプレートをコンテンツ アイテムの発行に使用するために、プレゼンテーション テンプレートが別のプレゼンテーション テンプレートによって参照されている必要がないことを意味するだけのものです。 |
別のプレゼンテーション テンプレートからページ コンポーネントのプレゼンテーション テンプレートを参照する方法については、「Include エレメント <pcs:include>」を参照してください。
| 注意 : | ページ コンポーネントはページの一部としてのみ発行されるため、ページ コンポーネントのプレゼンテーション テンプレートに関連アイテムを追加することはできません。 |
ファイルをアップロードする前に、またはコードを [コード] フィールドにコピー アンド ペーストする前に、任意の WYSIWYG エディタを使用して、テンプレートのコードを作成および編集することができます。
タグ ヘルパーは、[コード] フィールドに挿入可能な Publisher (pcs) タグを作成するのに役立ちます。
[検証] を使用することによって、[コード] フィールドの pcs タグの構文をチェックすることができます (HTML タグ間のコードはチェックされません)。構文エラーを修正するには、行番号をクリックして、コードのエラーが発生した箇所を選択します。
| 注意 : | 新しいプレゼンテーション テンプレート (単独で発行可能なプレゼンテーション テンプレートを除く) を作成した際は、必ず関連付けられているデータ入力テンプレートから少なくとも 1 つのコンテンツ アイテムを作成してください。これによって、プレビュー サイトでプレゼンテーション テンプレートをプレビューすることが可能になります。 |
WYSIWYG エディタの使用方法の詳細については、「WYSIWYG エディタの使用方法」を参照してください。
タグ ヘルパーの詳細については、「タグ ヘルパーを使用してプレゼンテーション テンプレートのコードを作成する方法」を参照してください。
プレゼンテーション テンプレートのコードの詳細については、「プレゼンテーション テンプレートのコード」を参照してください。
WYSIWYG エディタで、プレゼンテーション テンプレートのコードを作成し、そのコードをプレゼンテーション テンプレート エディタにアップロードまたはコピーすることができます。
WYSIWYG エディタで、プレゼンテーション テンプレートのコードを作成するには、次の手順を実行します。
| 警告 : | ファイルをアップロードすると、[コード] フィールド内のすべてのテキストが上書きされます。上書きせずに既存のテンプレートに追加するには、コピー & ペーストを使用してください。 |
WYSIWYG エディタを使用して、既存のテンプレートのコードを編集するには、次の手順を実行します。
「プレゼンテーション テンプレートのコード」も参照してください。
他のコンテンツ アイテムへのリンクの単純なコレクションから構成される発行済みコンテンツ ポートレットをデザインする場合、コンテンツ アイテム、データ入力テンプレート、プレゼンテーション テンプレートという 3 つの要素が必要ではない場合があります。特に、データ入力テンプレートにプロパティが含まれていない場合は、必要ありません。代わりに、コンテンツ アイテムまたはデータ入力テンプレートがなくても発行することが可能なスタンドアロンのプレゼンテーション テンプレートを作成することができます。そのような単独で発行可能なプレゼンテーション テンプレートは、ポートレットに含まれるコンテンツ アイテムを参照するために、pcs 機能を使用します。データ入力テンプレートまたは関連付けられているコンテンツ アイテムを参照する必要はありません。
単独で発行可能なプレゼンテーション テンプレートを作成するには、次の手順を実行します。
単独で発行可能なプレゼンテーション テンプレートでは、pcs 言語のすべてのタグおよび表現を使用することができます。以下の関数およびメソッドは、単独で発行可能なプレゼンテーション テンプレートのみに使用できます。
TemplateByPath(folder?,path): 単独で発行可能なプレゼンテーション テンプレートのみを返します。folder.templates: フォルダ内の単独で発行可能なプレゼンテーション テンプレートを返します。
プレゼンテーション テンプレートのコードの構文の詳細については、「プレゼンテーション テンプレートのコード」を参照してください。
| 注意 : | 単独で発行可能なプレゼンテーション テンプレートは、ワークフローで追跡することができません。 |
他の Publisher コンポーネントと同様に、Publisher エクスプローラでプレゼンテーション テンプレートのコピー、移動、名前の変更、および削除を行うことができます。しかし、プレゼンテーション テンプレートにこれらの操作を実行する際は、以下の点に注意してください。
pcs:include タグのファイル パスです。このタグのパスは、プレゼンテーション テンプレートを移動した後で、プレゼンテーション テンプレートの新しい場所を反映するように更新する必要があります。
すべての Publisher エレメントは、同じ構文および基本コンポーネントを使用します。Publisher エレメントを構築する前に、この節をお読みください。
この節では、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 エレメントの要約を示します。各エレメントの詳細な説明については、後続の節を参照してください。
Publisher エレメント (pcs タグ) をプレゼンテーション テンプレートに手動で入力するか、タグを作成するためにタグ ヘルパーを使用することができます。タグ ヘルパーについては、「タグ ヘルパーを使用してプレゼンテーション テンプレートのコードを作成する方法」およびオンライン ヘルプを参照してください。
<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> タグは、指定した条件が 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 とみなされるかについて概説します。
<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')">
タグが繰り返す値のリストは (変数に格納されているオブジェクトのタイプ)、表現の結果によって異なります。
各回数で、var = 属性で指定されている変数が、順に各値に設定されます。foreach タグのコンテンツ内で、変数をその他の PCS 言語表現で使用することができます。リストの表現が評価できない場合、foreach エレメントの拡張は失敗し、エレメントはドロップされます。
ForEach タグ内で定義される補助変数を使用して、リストについての情報、またはリストの各アイテムについての情報を提供することができます。補助変数は、ForEach var 属性で定義されている変数名にサフィックスを付加することによって、名前が付けられます。ForEach タグで var 属性を省略することができます。その場合、エレメントの変数は定義されません。補助変数が定義されている場合は、プレフィックスなしで使用することができます。
| 注意 : | 変数のサフィックス (VariableName_position) とプロパティの参照 (VariableName.name) を混同しないように注意してください。 |
<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>
<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 コードおよび XML コードは、プレゼンテーション テンプレート エディタの [コード] フィールドに直接入力できます。しかし、Publisher オブジェクトへの参照を含めた場合、HTML エディタで正確に評価できないコードになってしまうことがあります。<pcs:html> タグは、このような問題を解決します。
<pcs:html> タグは、通常、ユーザーに表示される完全に構成された HTML または XML エレメントによって置き換えられます。このエレメントは、誤ったコードとして評価されない構文を使用することによって、標準の WYSIWYG エディタを使用して容易にプレゼンテーション テンプレートの編集が行えるようにします。
Publisher は、<pcs:html:xxx> というエレメントを、タグ名が <xxx> である HTML エレメントに置き換えます。開始タグには、<pcs:html:xxx> エレメントの属性に基づく特定の属性が設定されます。任意の数の属性を使用することができます。各属性は、表現属性またはリテラル属性のどちらかになります。
expr:yyy="an_expression" という形式を持ちます。yyy には、正当な属性の名前を指定し、an_expression には、正当な表現を指定する必要があります (表現の詳細については、この節前半の Publisher エレメントの構文を参照してください)。結果としてタグ内で生成される対応属性は、yyy="result" で、この result は、an_expression という表現を評価した結果のテキストです。この形式を用いることによって、属性の値として、発行時に算出された値を使用することが可能になります。attr:yyy="value" という形式を持ちます。yyy には、正当な属性の名前を指定し、value には、正当な属性の値を指定する必要があります。結果としてタグ内で生成される対応属性は、yyy="value" です。これにより、表示の通りに構成される属性を追加することが可能になります。<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 属性を使用します (次節参照)。
オプションで使用できる 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> というエレメントの場合、追加属性を指定することによって下記のコンテンツが生成されます。
プレゼンテーション テンプレートは、コンテンツ アイテムのコンテキストで評価されます (単独で発行されるプレゼンテーション テンプレートを除く)。コンテンツ アイテムに対応するデータ入力テンプレートは、ユーザー定義のすべてのプロパティの名前およびタイプを制御します。また、すべてのコンテンツ アイテムは、システム定義のプロパティ (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 にアクセスできなくなります。これは、コンテンツ アイテムから別の場所にリダイレクトする必要がある場合に使用できます。 |
|
次に対して有効 : コンテンツ アイテム、発行可能なプレゼンテーション テンプレート。
|
|
プロパティを受け付ける Publisher タグには、基本的な表現も使用することができます。表現属性の値は以下のいずれかになります。
表現は、Publisher のプロパティを参照するために使用することができます。プロパティを参照するには、「プロパティ名」に記載されている規則に従ってください。
数字定数とは、任意の桁の数字文字列です。数字文字列の前にマイナス記号を置くことができます。また、数字文字列には、小数点文字を 1 つのみ含めることができます。小数点がある場合、小数点の両側に、少なくとも 1 桁ずつある必要があります。下記は、正当な表現の例です。
文字列定数は、一重引用符または二重引用符に囲まれている文字の文字列です。表現の引用符を属性値の周りの引用符と混乱する可能性がある場合、XML のエスケープ ルールを適用する必要があります。下記は、正当な表現の例です。
<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 として扱われます)
| 注意 : | 大なり記号および小なり記号は、XML では特別な意味を持ち、予約されているので、代わりに上記の同等の演算子を使用する必要があります。 |
(誤) <pcs:if expr="subscriber_count > 100">...(正) <pcs:if expr="subscriber_count > 100">...
これらの演算子を使用した比較表現の結果は、True または False というブール値になります。
2 つの文字列を比較する際は、大文字と小文字が区別されます。
expr="'blue'=='Blue'" の結果は false です。
プロパティに値が含まれているかどうかを判断するには、次のように null と比較してください。
expr="story.coauthor == null"
さまざまなタイプの値を比較する場合、以下の規則が適用されます。
これらの演算子は、JavaScript の演算子と同じです。JavaScript と同様、すべての数値は実数として扱われます。したがって、2 つのプロパティ値が整数でも、それらのプロパティ値を計算すると、結果は実数になります。たとえば、5/4 は、1.25 です。結果が、1 になる言語とは異なります。
JavaScript と同様、いくつかの同様の論理演算子の表現の結果は、論理演算子を満たす最初のオペランドの値になります。残りのオペランドは評価されません。AND 演算子は、False と評価された最初のオペランドによって満たされます。OR 演算子は、True と評価された最初のオペランドによって満たされます。以下の表では、いくつかの例を示します。
演算子が評価される順番は、JavaScript の場合と同じです。高い優先順位を持つ操作は、低い優先順位を持つ操作より前に実行されます。同じ優先順位を持つ演算子は、左から右に評価されます。以下の演算子のリストでは、優先順位が最も高い演算子から最も低い演算子の順にリストされています。
表現で使用できる関数は、システムで予め定義されているものに限られます。
| 注意 : | 相対パスは、発行されるコンテンツ アイテムではなく、プレゼンテーション テンプレートに基づきます。アイテムに基づいたフォルダの相対パスを取得するには、以下を使用します。 |
<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) ファイル、または js (JavaScript) ファイル、またはその両方を使用して、複数ウェブ ページの間の一貫性を確保することができます。css ファイルおよび js ファイルを管理するには、それらのファイルを Publisher データベースに格納し、ウェブ サイトに発行します。
<pcs:html:script attr:language="JavaScript" expr:src="item_name.location">
</pcs:html:SCRIPT>
<pcs:html:link attr:rel="stylesheet" expr:href="css_link.location" attr:type="text/css"></pcs:html:link>
| 警告 : | 手順 2 および手順 3 で作成したコンテンツ アイテムをウェブ ページとともに発行する必要があります。 |
別の .css または JavaScript ファイルを適用する必要がある場合、新しい .css または .js ファイルのコンテンツを、手順 2c で作成したコンテンツ アイテムにコピーし、ウェブ サイトに再発行します。
Publisher では、JSP 形式でプレゼンテーション テンプレート ツールが提供されます。プレゼンテーション テンプレートの作成者はこれらのツールを使用して、発行されたコンテンツから Publisher の機能にアクセスできます。
これは、コンテンツ アイテム エディタを開くために使用します。
記事 (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>
ユーザーに記事 (articles) フォルダ内に新しいフォルダを作成するように促すには、次のように指定します。
<pcs:value expr="pcs_location"></pcs:value>/published_tools/create_folder.jsp?<pcs:value expr="folderByPath(Articles').pcs_id"></pcs:value>
これは、特定のポートレットに関連付けされた発行済みコンテンツ アイテムを検索するために使用します。
現在のポートレットに関連付けされたコンテンツ アイテムで文字列「hello world」を検索するには、次のように指定します。
<pcs:value expr="pcs_location"></pcs:value>/published_tools/search.jsp?searchtext=hello%20world
注意 : 上記の JSP はすべて、操作が行われるフォルダのセキュリティに従います。
|