Oracle® WebCenter Content Site Studio for External Applications開発者ガイド 11g リリース1 (11.1.1) B72419-01 |
|
前 |
次 |
この項ではSite Studioタグ・ライブラリおよびヘルパー・メソッドについて説明します。この項の内容は、次のとおりです。
注意: Site Studioタグおよびヘルパー・メソッドはSite Studioの各リリースごとに変更される可能性があります。タグ・ライブラリ・サービス・キャッシングの詳細は、第1.9項「Site Studioタグ・ライブラリを使用したサービス・キャッシュの理解」を参照してください。 |
このトピックでは、Site Studioタグ・ライブラリに関する情報を示し、各タブについて個別に説明します。
この項では、Site Studioの各タグとその簡単な説明を示します。追加の詳細は、それぞれのタグの項を参照してください。
コンテンツ・タグは、SiteContext
オブジェクトを新規作成し、それを現在のHttpServletRequest
上に設定します。これにより既存のSiteContextが置き換えられます。これ以降のSite Studio APIまたはタグへのコールでは、このコンテキストが使用されます。
コンテンツが現在のパスから初期化されていない場合(initFromPath
がfalseか、指定されていない)、新規のSiteContextは既存のSiteContext(がある場合)と同じサイトIDと同じURLを持ちます。
パラメータ
siteID
: サイトID。必須です。
url
: サイト・パス。これはサイトIDを差し引いたパスの一部です(例: /about/index.html
)。必須です。
initFromPath
: 現在のHttpServletRequestからのコンテキストを初期化するにはtrue
に設定します(urlパラメータは無視されます)。
例
サイトID "mysite"のバージョン情報セクションのプライマリ・ページへの新しいコンテキストを初期化します。
<wcm:context siteID="mysite" url="/about/index.html" />
サイトIDを指定せずに、新しいURLへの現在のSiteContextをリセットします。
<wcm:context url="/index.html" />
データファイル・タグはコンテンツ・サーバーからコンテンツをロードして、DataFileオブジェクトへと解析します。オブジェクトは次に、式言語(EL)によってデータファイルの個々のコンポーネントへのアクセスに使用される変数として公開されます。wcm:dataFileタグは通常、リージョン・テンプレート上で使用され、割り当てられたDataFileを表示するためにロードします。
DataFileオブジェクトはマップ・インタフェースを実装し、すべてのメンバーに要素名によるアクセスを許可します。次の2種類の要素を取得できます。
TextElement
: テキスト・コンテンツ。
ListElement
: 静的リスト・コンテンツ。ListElement
はList
インタフェースを実装します。リストの各メンバーはTextElementsのマップです。
パラメータ
var
: 結果としてのDataFileオブジェクトの変数名です。必須です。
dataFile
: データファイルのコンテンツIDです。省略すると、wcm:placeholderタグ内からコールされた場合に、現在のプレースホルダに割り当てられているIDが使用されます。オプションです。
例
コンテンツIDがAWARDS
のデータファイルの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?> <root xmlns="http://www.stellent.com/wcm-data/ns/8.0.0" version="8.0.0.0"> <element name="title">Awards</wcm:element> <list name="list"> <row> <element name="name">2007 Outstanding Organization Award</element> </row> <row> <element name="name">2006 Top 50 Company</element> </row> </list> </root
割り当てられたデータファイルをリージョン・テンプレートからロードします。
<wcm:dataFile var="dataFile" />
あるいは、コンテンツIDを指定してデータファイルをロードします。
<wcm:dataFile var="dataFile" contentID="" />
HTMLにデータをモデリングします。
<h2>${title}</h2> <ul> <c:forEach var="row" items="${dataFile.list}"> <li>${row.name}</li> </c:forEach> </ul>
動的変換タグは、ネイティブ・ドキュメントの動的変換を作成するときに使用される変換ルールを指定するために使用されます。
パラメータ
rule
: ConversionsDefinitionファイルに定義された動的変換ルールの名前。必須です。
「表示」→「プロパティ・インスペクタ」→「ルール」→「編集」を選択して動的変換タグのルールを選択できます。ルールが選択されない場合はデフォルトのルールが使用されます。
page
: 表示するページの番号。オプションです。
var
: 動的変換の出力を割り当てる変数。省略すると、変換後の出力はページに直接書き込まれます。オプションです。
dataFile
: 変換対象アイテムのdDocName (コンテンツID)。省略すると、現在のプレースホルダに割り当てられたデータファイルが使用されます。オプションです。
例
ルールruleName
を使用して現在のデータファイルを変換します。
<wcm:dynamicConversion rule="ruleName" />
ルールruleName
を使用してデータファイルMY_WORD_DOC
を変換します。
<wcm:dynamiConversion dataFile="MY_WORD_DOC" rule="ruleName" />
動的リスト・タグは、リージョン定義内の指定された動的リスト要素から問合せを実行し、その結果をvar
変数に入れます。
パラメータ
element
: リスト要素の構築に使用されたリスト内の要素の名前。必須です。
var
: 動的リスト変数。必須です。
dataFile
: この動的リストをレンダリングするプレースホルダに割り当てられたデータファイル。オプションです。
placeholder
: この動的リストをレンダリングするプレースホルダの名前。オプションです。
例
リージョン・テンプレート内で割り当てられたデータファイルを使用する問合せです。
<wcm:dynamicList element="example" var="example"/>
結果をモデリングします。
<ul> <c:forEach var="row" items="${example.resultSets.SearchResults.rows}"> <li>${row.dDocName} - ${row.dDocTitle}</li> </c:forEach> </ul>
Idcパラメータ・タグは、Idcサービス・タグと組み合せて使用され、コンテンツ・サーバー上でIDCサービス・コールを実行します。名前と値のペアを取ります。
重要: パラメータはコールされたサービスにより異なります。サービス・コールとパラメータの詳細は、『Oracle WebCenter Contentサービス・リファレンス・ガイド』を参照してください。
パラメータ
name
: IDCパラメータ。コンテンツ・サーバー上のIDCサービス・コールのパラメータを入力します。Site Studio IdcServiceタグを使用して、コンテンツ・サーバー上で実行するIDCサービス・コールを定義します。必須です。
value
: Idcパラメータ変数。このパラメータに有効な値を入力します。必須です。
file
: true
の場合、値パラメータはパス(ローカル・ファイル・パスまたはこのWebアプリケーション内での相対ファイル・パス)を指定し、ファイル・オブジェクトとしてDataBinderに追加されます。オプションです。
例
この例では、Idcサービス・タグとIdcパラメータ・タグの両方が使用されます。この例では、CHECKIN_UNIVERSALサービスがコールされ、サービスのパラメータは名前と値のペアを使用して定義されます。
doFileCopy
パラメータはTRUE (1)に設定されます。このため、チェック・インしたファイルはハード・ドライブから削除されません。
dDocName
パラメータはコンテンツIDを定義します。
dDocTitle
パラメータはタイトルを定義します。
dDocType
パラメータはタイプを定義します。
dSecurityGroup
パラメータはセキュリティ・グループを定義します。
dDocAuthor
パラメータは作成者を定義します。
primaryFile
パラメータは、ファイルのオリジナル名とサーバーから見たファイルの場所への絶対パスを定義します。
<wcm:idcservice service="CHECKIN_UNIVERSAL" var="callStatus" <wcm:idcparameter name="doFileCopy" value="1"/> <wcm:idcparameter name="dDocName" value="RemoteTestCheckin23"/> <wcm:idcparameter name="dDocTitle" value="Test1"/> <wcm:idcparameter name="dDocType" value="ADACCT"/> <wcm:idcparameter name="dSecurityGroup" value="Public"/> <wcm:idcparameter name="dDocAuthor" value="sysadmin"/> <wcm:idcparameter name="primaryFile" value="C:/inetpub/Scripts/query2.asp"/> />
この例はサービス・コールからデータを取り戻す方法を示します。
<wcm:idcService service="DOC_INFO_BY_NAME" var="docinfo"> <wcm:idcParameter name="dDocName" value="DATAFILE1234" /> <wcm:idcParameter name="RevisionSelectionMethod" value="LatestReleased" /> </wcm:idcService> <c:forEach var="row" items="${docinfo.resultSets.DOC_INFO.rows}"> <p>The content item <em>${row.dDocName}</em> is a <u>${row.xWebsiteObjectType}</u></p> </c:forEach>
Idcサービス・タグは、Idcパラメータ・タグと組み合せて使用され、コンテンツ・サーバー上でIDCサービス・コールを実行します。
重要: パラメータはコールされたサービスにより異なります。サービス・コールとパラメータの詳細は、『Oracle WebCenter Contentサービス・リファレンス・ガイド』を参照してください。
パラメータ
service
: Idcサービス。コンテンツ・サーバー上で実行するIDCサービス・コールを入力します。サービス・コールはデータ・バインダを戻します。Site Studio IdcParameterタグを使用して、サービス・コールのパラメータを設定します。必須です。
var
: Idcサービス変数。コンテンツ・サーバーから返されるレスポンスの結果を格納する変数の名前を入力します。必須です。
type
: stream
に設定すると、コンテンツ・サーバーからのレスポンスはInputStreamオブジェクトです。デフォルト設定のレスポンスはoracle.stellent.ridc.model.DataBinderです。オプションです。
例
この例では、Idcサービス・タグとIdcパラメータ・タグの両方が使用されます。この例では、CHECKIN_UNIVERSALサービスがコールされ、サービスのパラメータはフィールドと値のペアを使用して定義されます。
doFileCopy
パラメータはTRUE (1)に設定されます。このため、チェック・インしたファイルはハード・ドライブから削除されません。
dDocName
パラメータはコンテンツIDを定義します。
dDocTitle
パラメータはタイトルを定義します。
dDocType
パラメータはタイプを定義します。
dSecurityGroup
パラメータはセキュリティ・グループを定義します。
dDocAuthor
パラメータは作成者を定義します。
primaryFile
パラメータは、ファイルのオリジナル名とサーバーから見たファイルの場所への絶対パスを定義します。
<wcm:idcservice service="CHECKIN_UNIVERSAL" var="callStatus" <wcm:idcparameter name="doFileCopy" value="1"/> <wcm:idcparameter name="dDocName" value="RemoteTestCheckin23"/> <wcm:idcparameter name="dDocTitle" value="Test1"/> <wcm:idcparameter name="dDocType" value="ADACCT"/> <wcm:idcparameter name="dSecurityGroup" value="Public"/> <wcm:idcparameter name="dDocAuthor" value="sysadmin"/> <wcm:idcparameter name="primaryFile" value="C:/inetpub/Scripts/query2.asp"/> />
この例はサービス・コールからデータを取り戻す方法を示します。
<wcm:idcService service="DOC_INFO_BY_NAME" var="docinfo"> <wcm:idcParameter name="dDocName" value="DATAFILE1234" /> <wcm:idcParameter name="RevisionSelectionMethod" value="LatestReleased" /> </wcm:idcService> <c:forEach var="row" items="${docinfo.resultSets.DOC_INFO.rows}"> <p>The content item <em>${row.dDocName}</em> is a <u>${row.xWebsiteObjectType}</u></p> </c:forEach>
メタデータ・タグは、コンテンツ・アイテム用のDOC_INFOサービス・コールを実行し、結果としてのDataBinderにコンテンツ・アイテムに関する情報を含めます。
パラメータ
contentID
: コンテンツID。必須です。
var
: メタデータ変数。必須です。
例
<wcm:metadata contentID="DATAFILE1234" var="metadata"/> <c:forEach var="metadatarow" items="${metadata.resultSets.DOC_INFO.rows}"> <p>The content item <em>${metadatarow.dDocName}</em> is a <u>${metadatarow.xWebsiteObjectType}</u></p> </c:forEach>
固定IDでなく、リージョン・テンプレート上のデータファイルを使用することもできます。例を以下に示します。
<wcm:metadata contentID="${wcmContext.placeholder.dataFile}" var="meta"/>
プレースホルダ・タグは、テンプレート内のどアイテムを挿入する場所を指定するために使用されます。これは通常はコンテンツですが、ナビゲーション、コード、サブテンプレートなども可能です。
パラメータ
name
: プレースホルダの名前。必須です。
location
: テンプレート上の場所。オプションです。
definition
: プレースホルダ定義へのマッピングを指定します。これにより他の方法で指定されたマッピングは無効になります。オプションです。
template
: データファイルのレンダリングに使用されるリージョン・テンプレート。オプションです。
dataFile
: このプレースホルダに割り当てるデータファイルのdDocName。オプションです。
regionDefinition
: データファイル上のxRegionDefinitionのかわりに使用するdDocNameリージョン定義。オプションです。
actions
: プレースホルダ定義の許可されたアクション。任意数のアクションを設定できます。一緒に使用できないパラメータ(たとえば、サブテンプレートとリージョン定義を同時に指定するなど)を使用する場合、タグは前述のパラメータの順序に基づいて実行します。オプションです。
Update [E]
: コントリビュータを更新します。
Approve [A]
: ワークフローを承認します。
Reject [R]
: ワークフローを拒否します。
Document Information [I]
: ドキュメント情報を表示します。
Switch Data File [S]
: データファイルを切り替えます。
View Usage Report [U]
: Web使用状況レポートを表示します。
View tracker Report [T]
: Web Trackerレポートを表示します。
Update Document Information [M]
: コンテンツ情報を更新します。
Switch Region Template [V]
: リージョン・テンプレートを切り替えます。
Remove Content [N]
: コントリビュータにコンテンツの削除を可能にします。
例
<wcm:placeholder name="yourplaceholdername" actions="E"/> <wcm:placeholder name="yourplaceholdername" actions="EPRISUTMVN"/>
静的プレースホルダ・タグは、固定データファイルにプレースホルダを追加するために使用できます。これはヘッダーやフッターなど、変更されないコンテンツに便利です。
パラメータ
dataFile
: この静的プレースホルダに割り当てるデータファイルのdDocName (コンテンツID)。必須です。
name
: 静的プレースホルダの名前。オプションです。
template
: データファイルのレンダリングに使用されるリージョン・テンプレート。オプションです。
actions
: プレースホルダ定義の許可されたアクション。任意数のアクションを設定できます。一緒に使用できないパラメータ(たとえば、サブテンプレートとリージョン定義を同時に指定するなど)を使用する場合、タグは前述のパラメータの順序に基づいて実行します。オプションです。
Update [E]
: コントリビュータを更新します。
Approve [A]
: ワークフローを承認します。
Reject [R]
: ワークフローを拒否します。
Document Information [I]
: ドキュメント情報を表示します。
View Usage Report [U]
: Web使用状況レポートを表示します。
View tracker Report [T]
: Web Trackerレポートを表示します。
Update Document Information [M]
: コンテンツ情報を更新します。
Switch Region Template [V]
: リージョン・テンプレートを切り替えます。
例
<wcm:staticPlaceholder datafile="yourdatafile" actions="E"/> <wcm:staticPlaceholder datafile="yourdatafile" actions="EPRIUTMV"/>
URLタグは、サイト構造への階層リンクか、コンテンツ・サーバーのコンテンツへのリンクか、どちらかをレンダリングします。
パラメータ
var
: リンク結果を格納する変数名。
type
: リンクのタイプ。必須です。
node
: ノードのURLを定義します。
dcresource
: 動的変換リソースのURLを定義します。プレースホルダ・タグ内でのみ有効。
dcpage
: 動的変換ページのURLを定義します。プレースホルダ・タグ内でのみ有効。
rendition
: レンダリングのURLを定義します。
resource
: リソースのURLを定義します。画像などのWebレイアウト静的リソースへのリンクに使用されます。
Link
: コンテンツへのリンクの作成に使用されます。
url
: リンク・パラメータ(タイプによりフォーマットが異なる)。必須です。
node
: nodeId|nodePath
のフォーマット。
dcresource
: dcResourcePath
のフォーマット。
dcpage
: dcPageNum
のフォーマット。
rendition
: dDocName/renditionName
のフォーマット。
resource
: dDocName
or webLayoutPath
のフォーマット。
Link
: dDocName
または(nodeId|nodePath)/dDocName
のフォーマット。
siteID
: リンク・ターゲットのサイトID。これはサイト・コンテンツ・アイテムのセクションIDとコンテンツIDで構成されます。たとえば、セクションID 56
とコンテンツID TEST_ITEM
。
例
/Aboutセクション(セクションID 20)へのリンクを作成します。
<wcm:url var="url" type="node" url="/About" /> <wcm:url var="url" type="node" url="20" />
コンテンツ・サーバー内のコンテンツの一部へのリンクを作成します。
<wcm:url var="url" type="resource" url="/groups/public/documents/document/news_article.doc" />
コンテンツ・アイテムのレンダリングへのURL
<!--$wcmUrl("resource","dDocName")--> <!--$wcmUrl("resource","groups/public/documents/adacct/mydocname.jpg")-->
コンテンツの一部へのリンクを作成し、ノードの内部を表示します(オプションでセクションを指定します)。
<wcm:url var="url" type="link" url="NEWS_ARTICLE" /> <wcm:url var="url" type="link" url="20/NEWS_ARTICLE" />
これらのSite Studioヘルパー・メソッドはテンプレートの作成に使用できます。
セクション・リストをフィルタして、非アクティブなセクションと、コントリビューション・モードでない場合にコントリビュータのみのセクションを削除します。
public static List<SectionNode> filterSections (SiteContext siteContext, List sections) { }
パラメータ
siteContext
: サイト・コンテキスト。
sections
: {@link SectionNode}オブジェクトのリスト。
stopLevel
: 終了レベル(含む)。
includeHome
: Trueの場合はhomeセクションを含めます。
返り値
sectionList
: リストの行を返します(セクションのリストとして示される)。
コード
public static List<SectionNode> filterSections (SiteContext siteContext, List sections) { if (sections == null) { return null; } List<SectionNode> sectionList = new ArrayList<SectionNode> (sections.size ()); for (Object sectionObj : sections) { SectionNode section = (SectionNode)sectionObj; if (!Boolean.parseBoolean (section.getModel ().getActive ())) { continue; } if (Boolean.parseBoolean (section.getModel ().getContributorOnly ()) && !siteContext.isContributorMode ()) { continue; } //add the section to the list sectionList.add (section); } return sectionList; }
指定されたパラメータと一致するセクションのリストを作成します。リスト内の各行に当該レベルのすべてのセクションが含まれます。
public static List listSectionsForRows (SiteContext siteContext, int startLevel, int stopLevel, boolean includeHome) { }
パラメータ
siteContext
: サイト・コンテキスト。
startLevel
: 開始レベル(含む)
stopLevel
: 終了レベル(含む)。
includeHome
: Trueの場合はhomeセクションを含みます。
返り値
rows
: リストの行を返します(セクションのリストとして示される)
コード
public static List listSectionsForRows (SiteContext siteContext, int startLevel, int stopLevel, boolean includeHome) { List<List<SectionNode>> rows = new ArrayList<List<SectionNode>> (); //get the first level if (startLevel < 1) { startLevel = 1; } if (stopLevel < 1) { stopLevel = 1; } Project project = siteContext.getProject (); for (int i = startLevel; i <= stopLevel; i++) { List<SectionNode> sections = project.getStructure ().getSectionsAtLevel (i); if (sections.isEmpty ()) { //no more sections so we can end here break; } rows.add (sections); } if (startLevel == 1 && includeHome) { List<SectionNode> nodes = null; if (rows.size () >= 1) { nodes = rows.get (0); } else { nodes = new ArrayList<SectionNode> (); rows.add (nodes); } nodes.add (0, project.getStructure ().getRootSection ()); } return rows; }
現在のノードがナビゲーション・パスの中にあるかどうかチェックします。
public static boolean isNodeInNavigationPath (SiteContext siteContext, String nodeID, boolean includeHome) { }
パラメータ
siteContext
: サイト・コンテキスト。
nodeID
: ノードID。
includeHome
: trueの場合はこのチェックでhomeセクション含め、falseの場合は除外します。
返り値
isInNavPath
: ノードIDがナビゲーション・パスの一部の場合はtrueを返します。
コード
public static boolean isNodeInNavigationPath (SiteContext siteContext, String nodeID, boolean includeHome) { if (nodeID == null) { return false; } boolean isInNavPath = false; SectionNode section = siteContext.getSection (); if (section != null) { isInNavPath = (section.getID ().equals (nodeID)); if (!isInNavPath) { for (SectionNode parent : section.getAncestors ()) { if (parent.getParent () == null && !includeHome) { continue; } isInNavPath = (parent.getID ().equals (nodeID)); if (isInNavPath) { break; } } } } return isInNavPath; }
パスまたはIDでセクションを検索します。
public static SectionNode lookupSection (SiteContext siteContext, String id) { }
パラメータ
siteContext
: サイト・コンテキスト。
id
: セクション・パスまたはID。
返り値
section
: セクションを返すか、見つからない場合はヌルを返します。
コード
public static SectionNode lookupSection (SiteContext siteContext, String id) { //see if this is a number SectionNode section = null; boolean isNumber = false; try { Integer.parseInt (id); isNumber = true; } catch (NumberFormatException exp) { //ignored } if (isNumber) { section = siteContext.getProject ().getStructure ().getSectionByID (id); } else { //fix up path id = PathHelper.ensureForwardSlashes (id); //handle relative if (!id.startsWith ("/")) { //get the current section SectionNode current = siteContext.getSection (); if (current != null) { id = current.getUrlPath () + "/" + id; } } section = siteContext.getProject ().getStructure ().getSectionByPath (id); } return section; }