この項の内容は次のとおりです。
Site Studioは、ランタイム・ファイルのコレクションを使用して、完全に動作するWebサイトを配信します。Webサイトのサイト階層を変更すると、これらのファイルが影響を受けます。これが、デザイナでサイト階層を変更したときにランタイム・ファイルの更新を求められる理由です。
ランタイム・ファイルは、Webサイトの次のランタイム・フォルダに格納されます(cs_nameはコンテンツ・サーバーの名前、siteidはWebサイトです)。
cs_name\weblayout\websites\siteid
次のファイルが自動的に生成されます。
sitenavigation.jsファイルには、Webサイト階層を定義するのに必要なJavaScriptが含まれます。Site Studioの一部のナビゲーション・フラグメントは、このファイルから情報を読み取るように設計されており、クライアント側JavaScriptを使用してWebサイトのナビゲーション・スキームを動的に生成します。
sitenavigation.jsには、サイト階層の単一ノード(デザイナ・インタフェースではセクションとも呼ばれる)を表すNavNodeオブジェクト定義が含まれます。sitenavigation.jsには、Webサイト・プロジェクト・ファイル内の実際のセクション・プロパティから生成されたプロパティがあります。
これらの標準プロパティ以外にも、NavNodeオブジェクトには、このセクションの値が割り当てられたすべてのカスタム・セクション・プロパティに対応するメンバー変数が含まれます。これらの変数のネーミング規則は、cp_XXXです(XXXはカスタム・セクション・プロパティ名です)。これらのデータ・メンバーは、NavNodeコンストラクタに渡された追加パラメータを解析することで構成されます。追加パラメータの形式は、名前==値の文字列です(後述するサンプル・コードのg_navNode_0_0の定義を参照)。これらの追加パラメータは、ランタイムJavaScriptファイルの再生成時にSite Studioによって自動的に生成されます。
sitenavigation.jsファイルには、定式名(g_navNode_Root)を使用して単一のルート・ノードで定義されるNavNodeオブジェクトに関するアクティブなサイト階層の宣言も含まれます。この値は、必要に応じてナビゲーション・フラグメントで調査できます。
次に例を示します。
var g_navNode_Root = new NavNode('9001','Home',ssUrlPrefix + 'index.htm',null,'PageTitle==Ravenna Hosting Tutorial Site'); g_navNode_1=g_navNode_Root.addNode('9002','Products',ssUrlPrefix + 'Products/index.htm','PageTitle==Ravenna Hosting Products'); g_navNode_1_0=g_navNode_1.addNode('9003','Servers',ssUrlPrefix + 'Products/Servers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_1.gif','PageTitle==Ravenna Hosting Servers'); g_navNode_1_0_0=g_navNode_1_0.addNode('9004','Web Servers',ssUrlPrefix + 'Products/Servers/WebServers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_2.gif','PageTitle==Ravenna Hosting Web Servers','SidebarProductsListBanner==webservers'); g_navNode_1_0_1=g_navNode_1_0.addNode('9005','Database Servers',ssUrlPrefix + 'Products/Servers/DatabaseServers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_3.gif','PageTitle==Ravenna Hosting Database Servers','SidebarProductsListBanner==databaseservers'); g_navNode_1_0_2=g_navNode_1_0.addNode('9006','Application Servers',ssUrlPrefix + 'Products/Servers/ApplicationServers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_4.gif','PageTitle==Ravenna Hosting Application Servers','SidebarProductsListBanner==applicationservers'); g_navNode_1_0_3=g_navNode_1_0.addNode('9007','File Servers',ssUrlPrefix + 'Products/Servers/FileServers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_5.gif','PageTitle==Ravenna Hosting File Servers','SidebarProductsListBanner==fileservers'); g_navNode_1_0_4=g_navNode_1_0.addNode('9008','Mail Servers',ssUrlPrefix + 'Products/Servers/MailServers/index.htm','MainNavIcon==/idcm1/groups/public/documents/rvh_image/rvh_navicon_6.gif','PageTitle==Ravenna Hosting Mail Servers','SidebarProductsListBanner==mailservers');
sitenavigation.jsファイルのNavNode定義とJavaScriptメソッドは、ランタイム・ファイルが再生成されるたびにSite Studioのコンポーネント・リソースから取得されます。NavNodeオブジェクトの階層のみが動的に生成されます。他のJavaScriptを変更する場合は、コンポーネント・リソースを更新または上書きする必要があります。
sitenavigationfunctions.jsファイルでは、クライアント側JavaScriptのナビゲーション・メカニズムで使用されるメソッドが提供されます。たとえば、IDベースのクライアント側ハイパーリンク関数のlink()メソッドやnodelink()メソッドの定義は、どちらもこのファイルに格納されます。
sitenavigation.xmlファイルには、サーバー側スクリプトで使用できるアクティブなサイト階層のXML定義が含まれます。このファイルで提供される情報を読み取るために、いくつかのナビゲーション・フラグメントが作成されます。各ナビゲーション・フラグメントは、この情報を読み取り、クライアント側JavaScriptではなくサーバー側スクリプトを使用してWebサイトのナビゲーション・スキームを動的に生成します。
XML定義には、ルートとして単一の<site>タグが含まれます。このタグには、各セクションを定義するための<section>タグの階層が含まれます。
次に例を示します。
<site id="9001" level="0" parent="" label="Home" href="index.htm" PageTitle="Ravenna Hosting Tutorial Site"> <section id="9002" level="1" label="Products" href="Products/index.htm" PageTitle="Ravenna Hosting Products"> <section id="9003" level="2" label="Servers" href="Products/Servers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_1.gif" PageTitle="Ravenna Hosting Servers"> <section id="9004" level="3" label="Web Servers" href="Products/Servers/WebServers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_2.gif" PageTitle="Ravenna Hosting Web Servers" SidebarProductsListBanner="webservers"></section> <section id="9005" level="3" label="Database Servers" href="Products/Servers/DatabaseServers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_3.gif" PageTitle="Ravenna Hosting Database Servers" SidebarProductsListBanner="databaseservers"></section> <section id="9006" level="3" label="Application Servers" href="Products/Servers/ApplicationServers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_4.gif" PageTitle="Ravenna Hosting Application Servers" SidebarProductsListBanner="applicationservers"></section> <section id="9007" level="3" label="File Servers" href="Products/Servers/FileServers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_5.gif" PageTitle="Ravenna Hosting File Servers" SidebarProductsListBanner="fileservers"></section> <section id="9008" level="3" label="Mail Servers" href="Products/Servers/MailServers/index.htm" MainNavIcon="/idcm1/groups/public/documents/rvh_image/rvh_navicon_6.gif" PageTitle="Ravenna Hosting Mail Servers" SidebarProductsListBanner="mailservers"></section></section>
sitenavigation.hdaファイルには、ssLoadSiteNavResultSet()スクリプト拡張機能で使用できるSiteStudioNavNodes ResultSetの永続表現が含まれます。このファイルには、サーバー側スクリプトで使用できるアクティブなサイト階層の定義が含まれます。このResultSetで提供される情報を読み取るために、いくつかのナビゲーション・フラグメントが作成されます。各ナビゲーション・フラグメントは、この情報を読み取り、クライアント側JavaScriptではなくサーバー側スクリプトを使用してWebサイトのナビゲーション・スキームを動的に生成します。
SiteStudioNavNodes ResultSetには、次の5つの列があります。
nodeId: ノードの一意の識別子。
parentNodeId: 親ノードの一意の識別子。
label: ノードのラベル。
level: サイト階層におけるノードの深さ。ルート・セクションのレベルは0(ゼロ)です。
href: ノードのプライマリ・ページに対するパス・ベースのサイト相対URL。
sitenavigation_co.hdaファイルには、sitenavigation.hdaファイルと同じ構造が含まれますが、SiteStudioNavNodes結果セットにはコントリビュータ専用ノードも含まれます。
wcm.toggle.jsファイルには、Webサイトでコントリビューション機能を提供するのに必要なJavaScriptが含まれます。最も重要なことは、wcm.contributor.OnKeyDown()
関数で、コントリビューション・モードに移行するためのキーボード・シーケンス([Ctrl] + [Shift] + [F5])を必要に応じて別のシーケンスに変更できることです。
デフォルトのキーストロークの組合せを変更するには、次のタスクを実行します。
次のディレクトリに移動します(ここで、CS-Dirはコンテンツ・サーバーのインストール場所です)。
CS-Dir
\custom\SiteStudio\publish\resources\wcm\sitestudio\
テキスト・エディタでwcm.toggle.jsを開きます。
関数OnKeyDownを見つけます。
別のキーストロークの組合せを使用するよう、この関数の実装を変更します。これによってwcm.contributor.toggleがコールされます。
この関数では仮想キー・コードを使用して、ユーザーによって入力されたキーの組合せを決定します。デフォルト値は、[Ctrl]+[Shift]+[F5]です。F5キーの仮想キーコードは116(16進で0x74)です。よく使用されるその他のファンクション・キーのコードはF1からF12までで、それぞれ112 (0x70)から123 (0x7B)までです。
wcm.toggle.jsを保存して閉じます。
注意: 次回Site Studioをアップグレードする際、またはパッチを適用する際、この手順を再度実行してキーストロークの組合せを保持する必要がある場合があります。 |
注意: 仮想キー・コードはオペレーティング・システム間で異なる場合があるため、コントリビュータが異なるオペレーティング・システムを使用する可能性のあるインスタンスでは、キーストロークの決定に使用されるキー・コードには特に注意が必要です。 |