この項の内容は次のとおりです。
Site Studioでリンクを作成する方法は多数あります。所定のHTMLパスベースのリンクを使用したり、移植性と再利用性というSite Studio 11gのアーキテクチャを最大限活用するSite Studioの拡張機能を使用します。
Site Studio固有のメソッド内では、3種類の主要なリンクがあります。コンテンツ・ファイル(データ・ファイル、ネイティブ・ドキュメントなど)へのリンク、ノードへのリンクおよびイメージなどの静的リソースへのリンクがあります。
パスベースのリンクは、単にパスを使用したリンクです。必要に応じてIdocスクリプト変数を使用して、パスの一部を置換できます。変数はサーバーによって評価され、提供されるHTML内で置換されます。
パスベースのリンクは、絶対リンクまたは相対リンクとして記述できます。相対リンクおよびIdoc変数を使用したリンクは移植性が高いため、推奨されます。絶対リンクは、サイトが変更された場合に簡単にリンク切れが起こります。絶対リンクが推奨されるのは、外部のWebサイトへのリンクの場合のみです。
パスベースのリンクがリンク・ウィザードを使用して作成される場合、サーバーからWebサイトのルートへのパスの部分は、Idoc変数で置き換えられます。
例
基本的なパスベースのリンクは、想定どおりの完全URLです。
support/index.html
同じリンクをIdoc変数(具体的にはssServerRelativeSiteRoot
)を使用して作成すると、次のようになります。
<!--$ssServerRelativeSiteRoot-->support/index.html <a href="[!--$ssServerRelativeSiteRoot--]support/index.html">
変数のコンテンツでパス・セグメントの最後に"/"が含まれていることの注意してください。
相対パスは、静的HTMLインスタンス内と同様に使用されます。
../../support/index.html <a href="../../support/index.html">
山カッコが使用されている場合(<!--$wcmUrl('nodelink', '30)-->
など)と大カッコが使用されている場合([!--$wcmUrl('nodelink', '30)--]
)があります。Site Studioでは、XMLファイルおよび山カッコによってエスケープの問題が生じる可能性のある場所には大カッコを記述し、テンプレートには山カッコを記述します。どちらも区別なく使用できる点に注意してください。いずれを使用するか選択する際、どちらのインスタンスでエスケープの問題が生じる可能性があるかに注意してください。
サーバー側スクリプト・リンクはスクリプトで記述されたリンクですが、サーバーによって評価され、表示されるHTML内では置換されています。表示されているページのソースを確認すると、URL(相対または完全URL)が含まれているのみです。
サーバー側スクリプト・リンクはIdocスクリプトで記述されます。変数でも関数コールでも、サーバー側リンクはサーバーで評価され、表示されているWebページのソースに含まれません。
内容は次のとおりです。
これは、他のリンク・フォーム(特に、サーバー側ssNodeLink、ssLinkおよびssWeblayoutUrl)をカプセル化するために設計されたスクリプト拡張機能です。これが、Site Studioでの使用を推奨されるリンク形式です。
必要なパラメータは1つのみで、タイプです。指定されたタイプに応じて、他のパラメータが必要な場合と必要でない場合があります。
wcmUrlスクリプト拡張機能は、4.3項「サーバー側スクリプト・リンクの使用」にリストされたスクリプト・リンクの機能が含まれたサーバー側スクリプト・リンクです。1つのスクリプト拡張機能にすべてが含まれることで、コンテンツ・ファイルまたはテンプレートでのリンクの検索が簡単になります。
パラメータ
type: 次のいずれかとして入力されるリンクのタイプ。
[nodelink
| link
| resource
]
Nodelink
はセクションへのリンクの作成に使用されます。リンクは、デフォルトではindex.htmで終わります。Link
はコンテンツへのリンクの作成に使用されます。リンクは、デフォルトではcontentIdで終わります。Resource
は、イメージなどのweblayout静的リソースへのリンクに使用されます。
nodeId: 参照されるノードのID。タイプがnodelink
またはlink
のいずれかに設定されている場合にのみ使用されます。
siteId: 参照されるWebサイトのサイトID。タイプがnodelink
またはlink
のいずれかに設定されている場合にのみ使用されます。
dDocName: 参照されるコンテンツのdDocName。タイプがlink
またはresource
のいずれかに設定されている場合にのみ使用されます。
例
評価前:
[!--$wcmUrl('link', 'switched_region_CDF')--] [!--$wcmUrl('nodelink', '30')--] [!--$wcmUrl('resource' 'groups/public/documents/adacct/mydocname.jpg')--]
これらの例では、パラメータに一重引用符が使用されます。他の例では、二重引用符が示される場合があります。山カッコと大カッコと同様、両方とも機能します。一部のインスタンスでは、一方を使用することで、考えられるエスケープの問題の回避に役立つ場合があります。
サーバーによる評価:
<a href="/support/switched_region/"> <a href="/region/West/"> <img src="groups/public/documents/adacct/mydocname.jpg">
1行目は、dDocNameで参照されるコンテンツ・ファイルへのリンクを示しています。2行目は、nodeIdで参照されるノードへのリンクです。3行目は、Oracle Content Server上のイメージ・ファイルへのパスです。
存在しないリソースへリンクされている場合などのようにリンクの値が不正と評価された場合、リンクはトークン・リンクと評価されます。詳細は、4.4.3項「サーバー側リンクから生成されるトークン・リンク 」を参照してください。
ssLinkスクリプト・リンクは、ネイティブ・ドキュメントなどのデータ・ファイルへのサーバー側リンクの作成に使用されます。ターゲット・オブジェクトはdDocNameによって参照されます。
パラメータ
dDocName: 管理対象アイテムのdDocName。パラメータが1つのみ指定されている場合、dDocNameとみなされます。
targetNodeId: ターゲット・コンテキストとして使用するノードの一意の識別子(オプション)。
targetSiteId: ターゲット・コンテキストとして使用するWebサイトの一意の識別子(オプション)。targetSiteIdを指定する場合、targetNodeIdも指定する必要があります。
例
評価前:
[!--$ssLink('dDocName')--]
(ここで、dDocNameは/support/switched_regionのコンテンツ・ファイルのことです)
サーバーによる評価:
<a href="/support/switched_region/">
注意: ssLinkによって生成されるリンクが適切でない場合、ssLINKを使用してトークン化されたリンクがかわりに使用されます。これは、リンク切れしたリンクによってページの生成や配信が妨げられることがないことを意味しますが、リンク切れしたリンクはクリックすると検出できます。 |
ssNodeLinkスクリプト・リンクは、Webサイト・セクションへのサーバー側リンクの作成に使用されます。
パラメータ
nodeId: ノードの一意の識別子。
siteId: ノードを含むWebサイトの一意の識別子(オプション)。
例
評価前:
[!--$ssNodeLink('30')--]
(ここで、Webサイトの/support/CRMフォルダのnodeIdは30です)
サーバーによる評価:
<a href="/support/CRM/index.htm">
注意: ssNodeLinkによって生成されるリンクが適切でない場合、ssNODELINKを使用してトークン化されたリンクがかわりに使用されます。これは、リンク切れしたリンクによってページの生成や配信が妨げられることがないことを意味しますが、リンク切れしたリンクはクリックすると検出できます。 |
ssWebLayoutUrlは、ドキュメントのweblayoutレンディションへのサーバー側リンクの作成に使用されます。このリソース/レンディションは、dDocNameまたはリソースへのパスで参照できます。
パラメータ
dDocName: 参照されるコンテンツのdDocName。
例
評価前:
[!--$ssWebLayoutUrl('groups/public/documents/adacct/mydocname.jpg')--]
サーバーによる評価:
<a href="groups/public/documents/adacct/mydocname.jpg">
トークン・リンク(遅延解決リンクとも呼ばれる)は、実際にクリックされるまで解決されません。ソースを表示すると、URLにssLINKまたはssNODELINKが含まれていることがわかります。トークン・リンクはクリックされるまで解決されません(そのため、遅延解決と呼ばれます。リンクの解決はページの表示後に行われます)。これに対し、スクリプト・リンクはWebページの表示前にサーバーで解決されます。
ssLINKおよびssNODELINKはトークン・リンクであることに注意してください。ssLinkおよびssNodeLinkはssLINKおよびssNODELINKと同じ名前ですが、キャメルケースのssLinkおよびssNodeLinkはスクリプト・リンクです。
トークン・リンクは、ネイティブ・ドキュメントにリンクを含める方法として推奨されます。Word docはDynamic Converterを使用してHTMLに変換されるため、トークン・リンクを使用して記述する方が簡単です。他の方法も可能ですが、この方法の方が単純です。
この項の内容は次のとおりです。
データ・ファイルへの遅延解決リンクの作成に使用されます。ssLinkとは異なり、遅延解決リンクは、リンクがクリックされるまで解決されません。
パラメータ
dDocName: 管理対象アイテムのdDocName。パラメータが1つのみ指定されている場合、dDocNameとみなされます。
targetNodeId: ターゲット・コンテキストとして使用するノードの一意の識別子(オプション)。
targetSiteId: ターゲット・コンテキストとして使用するWebサイトの一意の識別子(オプション)。targetSiteIdを指定する場合、targetNodeIdも指定する必要があります。
例
<a href="ssLINK/dDocName">
URL内にまだssLINKがあることに注意してください。リンクにマウスオーバーした場合またはソースを表示した場合に、ブラウザにこのように表示されます。リンクをクリックすると、Oracle Content ServerがdDocNameを評価し、フレンドリURLを決定してそれにリダイレクトします。
Webサイト・セクションへの遅延解決リンクの作成に使用されます。
パラメータ
nodeId: ノードの一意の識別子。パラメータが1つのみ指定されている場合、nodeIdとみなされます。
siteId: ノードを含むWebサイトの一意の識別子(オプション)。siteIdを指定する場合、nodeIdを指定する必要があります。
例
<a href="ssNODELINK/10027">
URL内にまだssNODELINKがあることに注意してください。リンクにマウスオーバーした場合またはソースを表示した場合に、ブラウザにこのように表示されます。リンクをクリックすると、Oracle Content ServerがnodeIdを評価し、フレンドリURLを決定してそれにリダイレクトします。
サーバー側リンク(ssNodeLinkなど)が失敗した場合、トークン・リンクが返されます。不適切なリンクによってページの配信が妨げられることがないよう置換が行われます。
サーバーがサーバー側リンクを評価してリンクに問題がある(dDocNameが正しくないなど)と、サーバーは、トークン・リンクを使用してリンク・パラメータ値を返します。その結果、Webページは実質的なエラーなしで配信されます。ただし、トークン・リンクが使用された場合と同様に、ユーザーはソースでトークン・リンクを(リンクへのマウスオーバーによって)確認できます。
例
渡されたサーバー側リンクのパラメータ値は保持されます。次の値がサーバーに渡されて評価されるとします。
<!--$ssLink('Bad_dDocName')-->
サーバーは、提供するWebページのソースで次の値を返します。
<a href="ssLINK/Bad_dDocName">
これによって、サーバーがリンクを評価する際にWebページ全体をエラーとすることはなくなります。ただし、返されたトークン・リンクをクリックすると、サーバーからエラー・ページが表示されます。
これは、wcmUrlがサーバー側スクリプト・リンクのシン・ラッパーの場合、wcmUrlスクリプト・エラーでも起こります。