KAME-Board では、HTML中に、<skel >というタグ書いておくことによって、表示時に、そのタグを置換して表示します。
<skel var>タグは、変数 varの値に置換されます。変数への値のセットの方法は、2通りあります。
config/skel.db1 中にかいておく場合は、db1 形式を使います。コロンで項目名と 値が区切られた形式で、途中に空行やコメント、不要な空白を含めることはできま せん。空白を含めたばあい、その空白も文字(項目名や項目値)の一部として評価さ れます。
config/skel.db1 に
<skel >タグを置く位置はHTMLのタグの中でもかまいません。単純に置換さ れます。
db1 形式 | ||
項目名 | : | 項目値(改行) |
項目名 | : | 項目値(改行) |
項目名 | : | 項目値(改行) |
SKEL 変数は、通常、プログラムや config/skel.db1 でセットされるが、skel ファイル中でも、<skel_var >構文を使ってセットできる。
variableは変数名で、空白や数字を含まない ASCII の識別子名、valueは値で、空白や日本語でもかまいません。
<skel_include filename>タグは、タグの位置にファイルをインクルー ドします。<skel_include filename>の場合は、その HTML ファイル がおいてあるディレクトリか、それよりも上の階層の skel/ ディレクトリの filename.htm というファイルが読み込まれます。
この文書の場合、<skel_include sidebox_index>と書いておいて、 skel/sidebox.htm を読み込んでいます。
<skel_func function_name>タグは、タグを、プログラムの関数の実 行結果で置換します。実行される関数は、kameboard.cgi が読み込むライブラリ (lib/ ディレクトリに置いてある *.pl ファイルは自動的に読み込みます)の中か ら、グローバル変数 $SKEL_FUNC{function_name} に入っている関数リファレンス です。
代表的には、次のように記述します。
skel_func の定義例 |
# kame-dat/lib/skel_func_skeltest.pl # <skel_func skeltest> # $SKEL-> を全部表示する。 $SKEL_FUNC{'skeltest'} = \&skel_func_skeltest; sub skel_func_skeltest{ my $key; my $str; $str = <<"HTML"; <table border> <tr><th colspan="2"><skel_func skeltest> kame-dat/lib/skel_func_skeltest.pl:sub skel_func_skeltest</th></tr> HTML foreach $key (keys %$SKEL){ next if ($key =~ /photo/); $str .= "<tr><td>$key</td><td>$SKEL->{$key}</td></tr>\n"; } $str .= "</table>\n"; return $str; } 1; # *.pl ファイルの最後は TRUE を返す。 |
skel_func の実行例 |
<skel >, <skel_var >, <skel_include >, <skel_func>の評価順序は次の通りです。
つまり、<skel_func >の出力結果などには、<skel >を使えるという ことです。