![]() |
Version 5.1 |
||||||||||||||||||||||||||||||||
|
|
下は、WSSP ファイルの例です。
<html> <body> <h1>Welcome to %%server%%. Your ID is %%ID%%.</h1> <!--%%IF EXISTS(lastLogin)--> Last time you visited us on %%lastLogin%% <!--%%ENDIF--> </body> </html>
このWSSP ファイルの場合、%%server%%、%%ID%%、%%lastLogin%% がテキスト要素で、 <!--%%IF EXISTS(lastLogin)--> と <!--%%ENDIF--> が構造要素です。
WSSP ファイルで非ASCII 記号を記述する場合、キャラクタセットとしてUTF-8 を使用しなければ なりません。これで、WSSP ファイルの処理時、データセット(辞書) の文字列charset の内容 (UTF-8) が取り出されます。一方、文字列charset の内容がUTF-8 でなかったときには、WSSP ファイルのテキストは、そのページのキャラクタセットを使って変換されます。
WSSP ファイルのテキスト要素と構造要素には、式を使用できます。ここで式とは、名前と記号の組 み合わせをいい、この組み合わせにしたがって、データセット(データ辞書) や、その他のリソース からデータが取り出されます。
WSSP スクリプティング(WSSP ファイルでのスクリプトコードの定義) で使用できる式としては、次 の種類があります。
データ要素は、英数字文字列(system やid など) だけで表わされる式をいいます。この式(データ要
素) の値は、その名前に関連する値(データセットの中のキーの値) と同じです。その値がデータセッ
トにない場合、式の値はNULL になります。
例えば、データセットにsystem という名前(キー) のデータ要素があり、その値が文字列"Sun
Solaris" の場合、その式(データ要素) の値は、文字列Sun Solarisです。
データセットの値は大文字と小文字は区別されず、したがって、データ要素の名前も大文字と小文字 は区別されません。
英数字文字列の後に記号[] を記述した場合、その英数字文字列は配列スキャナの名前と解釈されま す。配列スキャナ(英数字文字列と[] の組み合わせ) は、 <!--%%FOREACH name...--> ....<!--%%ENDFOR name--> 構造の内部に記述しなければなりません。また、その内部に[] ( インデック ス) に対応する配列の要素が存在しなければなりません(下記を参照)。配列スキャナの名前は、大文 字と小文字は区別されません。
何らかの式(文字列) を指定し、その後にドット記号(.) と英数字文字列を記述した場合、その要素
はキー付き要素として解釈されます。この場合、式が計算され、その値として辞書が返ります。ドッ
トの後の英数字文字列には、キーを指定します。式の計算で出力された辞書から、このキーの値が取
り出されます。式( ドットの前の部分) の値が辞書でなかった場合、または、ドットの後の英数字文
字列で指定したキーが式の値に存在しなかった場合、キー付き要素の値はNULL になります。
キー付き要素のキーは、引用符で囲った文字列でもよく、その場合、英数字以外の記号を指定するこ
ともできます。
例えば、データセットに、2 つの要素からなる辞書(例えば、{OS = "Sun Solaris";
CPU="sparc";}) があったとします。この場合、settings.OS というキー付き要素では、その値と
して文字列Sun Solaris が返ります。また、settings."OS1" の場合、その値としてNULL が返りま
す(辞書にはOS1 というキーはありません)。
何らかの式を記述し、その後に角カッコで囲んだインデックス式([ インデックス]) を記述した場
合、その要素はインデックス付き要素として解釈されます。インデックス付き要素は、処理時、まず
インデックス式の前の式が計算され、その値として配列が返ります。続いて、インデックス式が処理
され、その値として数値を表す文字列が出力されます。この数値は、配列の要素の位置(つまり配列
のインデックス) で、このインデックスで指定される要素の値が、このインデックス付き要素の値と
して使われます。インデックス式の値が0 の場合、配列の最初の要素が取り出されます(配列のイン
デックスの開始値は0 です)。
インデックス式の前の式の値が配列でなかった場合、または、インデックス式の値が文字列(数値を
表す文字列) でなかった場合、もしくは、インデックス式の値が文字列であっても、その値がマイナ
スまたは配列の要素の数以上の場合、インデックス付き要素の値としてNULL が返ります。
英数字文字列があり、その後に開きカッコ(() が続く場合、その要素は関数と解釈されます。開き
カッコ(() の後の要素は関数パラメータで、パラメータの後には閉じカッコ()) が続きます。
関数名は、大文字と小文字は区別されません。
下記は、WSSP スクリプティングで使用できる関数とパラメータの一覧です。
キー | 値 |
---|---|
ID | 文字列。このセッションの一意の識別子。 |
accountName | 文字列。このセッションに関連するアカウントの名前。 |
domainName | 文字列。このセッションに関連するアカウントが属するドメインの名前。 |
filesRef | 文字列で、URL 接頭辞。この接頭辞を使って、セッションで使われるスキンのファイルが取り出されます。 |
fullAccountName | 文字列。このセッションに関連するアカウントの正式名( アカウント名@ ドメイン名)。 |
loginAddress | 文字列。ユーザーが、このセッションを開始したときに使われたネットワーク(IP) アドレス。 |
loginTime | 文字列。セッションの開始時刻(ACAP フォーマット)。 |
mailboxes | 「選択可能」メールボックスの名前を格納した配列。 |
selectedMailbox | 文字列。最後にコピー/ 移動処理(選択) が実行されたメールボックスの名前。 |
webFolders | パーソナルWeb サイトフォルダの名前を格納した配列。 |
selectedWebFolder | 文字列。Web サイトフォルダのうち、最後にファイル保存処理が実行されたフォルダの名前。 |
webSiteEnabled | パーソナルWeb サイトのスペース制限(サイズ上限) の設定が0以外であるかどうかを示すキーです。 |
テキスト要素とは、先頭と末尾がそれぞれ、2 つのパーセント記号(%%) で囲まれた要素をいいま す。テキスト要素の本体は式で、式にはオプションで接頭辞を付加できます。以下、テキスト要素に ついて説明します。
>=GO=>に置換されます。
>=GO=>に置換 されます。
Stop%20It%3Fに置換されます。
What do \"they\" thinkに置換されます。
%%TIME:elapsedTime%%は、文字列
40 minutesに置換されます。
%%TIME:elapsedTime%%は文字列
40minsに置換されます。
記号 | 置換後のデータ |
^D | 月の日(2 桁) |
^d | 月の日(1 桁または2 桁) |
^M | 月の名前(関数MONTHNAMES() から返った名前で、その後、DICTIONARY("DatePictures") で変換) |
^N | the month number (2-digit, from 01 to 12) |
^Y | 年(2 桁) |
^y | 年(4 桁) |
^s | 秒(2 桁) |
^m | 分(2 桁) |
^H | 時(2 桁、00 から23) |
^h | 時(1 桁または2 桁、1 から12) |
^t | 接尾辞AM またはPM (DICTIONARY("DatePictures") で変換) |
^w | the weekday number (Sun - 0) |
^W | 曜日(関数WEEKDAYS() で返った名前で、その後、DICTIONARY("DatePictures") で変換) |
Test Subje..に置換 されます。
%%HTMLSUBST(STRING("text1"),var2):STRING("text2")%%
comparing My String1 & My Var2に置換されます。
構造要素は、 <!--%% マーカーで始まり、 --> マーカーで終わります。構造要素は、生成されるマー クアップ(HTML) コードに挿入されることはありません。
<!--%%IF EXISTS(lastLogin)-->We have not seen you since <i>%%HTML:lastLogin%%<iI> <!--%%ELSE-->Welcome, new user! <!--%%ENDIF-->上の例で、データセットの要素lastLogin の値が20-Apr-2001 だった場合、次の文字列が生成さ れます。
<table border="1"> <tr><td>File Name</td><td>File Size</td></tr> <!--%%FOREACH elem in fileList--> <tr><td>%%HTML:elem[].name%%</td><td>%%elem[].size%%</td></tr> <!--%%EMPTYFOR elem--> <tr><td colspan="0"> </td></tr> <!--%%ENDFOR elem--> </table>
<table border="1"> <tr><td>File Name</td><td>File Size</td></tr> <tr><td>MyReport</td><td>2300</td></tr> <tr><td>My Old Report</td><td>4000</td></tr> </table>
<!--%%NUMERICMENU sizeLimit IN (-1,0,100,200,300)-->次のマークアップ(HTML) テキストに置換されます。
<option value="-1">-1<option value="0">0 <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%NUMERICMENU sizeLimit IN (-1,0,100,200,300) DISPLAY DICTIONARY("Limits")-->次のマークアップ(HTML) テキストに置換されます。
<option value="-1">Unlimited<option value="0">Off & Shut <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%NUMERICMENU sizeLimit DEFAULT defLimit IN (-1,0,100,200,300) DISPLAY DICTIONARY("Limits")-->次のマークアップ(HTML) テキストに置換されます。
<option value="-2">default(Unlimited) <option value="-1">Unlimited<option value="0">Off & Shut <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%ENUMMENU color IN colors-->次のマークアップ(HTML) テキストに置換されます。
<option value="0">Blue<option value="1" selected>Green<option value="2">Red
<!--%%ENUMMENU color IN colors DISPLAY DICTIONARY("Colors")-->次のマークアップ(HTML) テキストに置換されます。
<option value="0">Night Blue<option value="1" selected>Grass Green<option value="2">Red
<!--%%ENUMMENU color DEFAULT defColor IN colors DISPLAY DICTIONARY("Colors")-->次のマークアップ(HTML) テキストに置換されます。
<option value="-1">default(Night Blue)<option value="0">Night Blue <option value="1" selected>Grass Green<option value="2">Red