スキンの動作設定 skin.cgi

2006.05.02 火曜日
rgt.cgimain.htmlreg.htmledit.html はこのファイルをベースにして動きます。
使うことのできる項目はこのファイルで管理されていて、用意したい項目や項目の名前はここで設定します。 (項目とは「コメント」や「特技」などのことです)
要点を絞って解説します。

スキンの名前・バージョンなど
主に RGT が、今どのような名前のスキンを使用しているか、判断するためのものです。
あまり神経質にここを変える必要はないと思います。
main.html で使用できるタグ !ver! で表示されるテキストです。
$ver = 'スキンの名前、バージョンなど';


登録できる画像のサイズ設定
(横幅、縦幅) ピクセル数指定です。
@maxsize = (500, 120);


曜日のテキスト設定
main.html で使用できるタグ !wd! で表示される日時(曜日)のテキストです。
日曜から土曜日まで。
@weekdays = ('SUN','MON','TUE','WED','THU','FRI','SAT')


月のテキスト設定
main.html で使用できるタグ !mon! で表示される日時(月)のテキストです。
1月~12月まで。
@month = ('Jan', ~ ,'Dec')


日時の数値設定
main.html で使用できるタグ !mo! !da! で表示される半角数字の日時(月、日)が10 より小さいとき、先頭に 0 を付けます。(0=付けない 1=付ける)
$date_fig = '0';


エントリのランク

2006.05.02 火曜日
RGT では、エントリ(記事)にランク(例:役職等)を割り振り、ランクごとに並べて表示させることができます。

@rank = ('ランクA', 'ランクB') ;
@rank_max = ('ランクAの最大数', 'ランクBの最大数') ;

ページ表示時に、 @rank に設定された値の←(左側)のものから上位に並び、また各ランクの最大登録数を @rank_max にて設定できます。 main.html のテンプレート(エントリ部)をランクごとに変えることもできます。(詳細は『HTMLテンプレート』カテゴリ参照)
※注意!:ランクに使える文字は半角英数字に限定されます。

実際の使用例
@rank = ('Guildmaster', 'Member') ;
@rank_max = ('1', '0') ;

上記のように設定した場合、エントリが「1.Guildmaster 2.Member」の順序に並べられ、 「最大登録数は GuildMaster が 1、 Member が上限なし(0=上限なし)」となります。
(上限なしであっても、config.cgi の $max を超える数は登録できません)

項目を決める

2006.05.02 火曜日
RGT では、項目は無制限に用意できます。

$name{'項目名(タグ名)'} .= '項目名(詳細)';

例えばこのように記述します。

$name{'age'} .= '年齢';

こう記述すると、RGT は『項目名(タグ名)「age」・詳細名「年齢」という項目を1つ使う』と認識します。

ここで設定された項目は、main.html、reg.html、edit.html でタグとして使うことが出来ます。(この場合、!age! と ?age? が使用できるようになる)

skin.cgi
...
$name{'age'} .= '年齢';
...

main.html、reg.html、edit.html
...
?age?!age!
...

実際に表示されるページのHTML
...
年齢15 ) (←15は登録されたデータの例です)
...

と、このように利用します。

つまり skin.cgi、各テンプレートファイル、そして実際に表示されるページは関連しあっているわけです。『HTML テンプレート』のカテゴリもご覧になってください。

選択メニューの項目

2006.05.02 火曜日
登録・変更フォームでは通常、各項目はテキストボックス <input type="text"> や テキストエリア <textarea></textarea> として使われますが、選択メニュー(<select>~</select>)として使う場合の記述です。
メニューの内容は半角の「,(コンマ)」で区切り追加していきます。

$menu{'項目名'} .= '項目A, 項目B, 項目C,';

大量のメニューを作成する場合、

$menu{'項目名'} .= '項目A, 項目B, 項目C,';
$menu{'項目名'} .= '項目D, 項目E, 項目F,';
$menu{'項目名'} .= '項目G, 項目H, 項目I,';

と分けて書くこともできます。
※この場合、メニュー内容は「項目A~項目I」となります。

規則的な数値で構成されるメニューを大量作成する場合、
$menu{'項目名'} .= '1_100+'; (1~100まで)
$menu{'項目名'} .= '100_1-'; (100~1まで)
$menu{'項目名'} .= '1_100+10'; (1~100まで+10ずつ)
$menu{'項目名'} .= '1_50+,50_1-'; (1~50までと50~1まで)
$menu{'項目名'} .= '1_50+,あ,い,う'; (1~50までと「あ」「い」「う」)

とすることで楽に作成できます。 ただし、この扱いには注意してください。 あまりにも大量の選択肢を作成する場合、処理にとても時間が掛かり負荷も大きくなります。 選択肢数は多くても1000個以内に留めてください。 選択肢が多すぎると実際に選ぶときも面倒になるので、 普通にテキストボックスにした方がいい場合も多いはずです。

フォーム内容の確認

2006.05.02 火曜日
登録・変更フォームでは各項目が正しく入力されているか調べる必要があります。 登録・変更の実行時に、どのようなチェックを行うかをここで設定します。 1 なら入力されているか確認します。(必須項目とする場合に設定します) 0 でオフです。 初期設定は 0 なので確認が不要な項目は記述しなくて構いません。
(0=オフ 1=項目が入力されているか?)

$check{'項目名'} = 1;

ただ、これでは簡単なチェックしか出来ないため、詳細なチェックを行いたい場合は、JavaScript などでチェックルーチンを自作された方がいいでしょう。

改行を残す項目

2006.05.02 火曜日
通常、データ登録時に全項目の改行を取り除いています。(データ保存上問題があるためです) しかし <textarea></textarea> の項目など(コメントとか)改行を残しておきたい場合もあります。 その場合、以下の記述をします。
(0=改行を取り除く 1=改行を残す)

$enter{'項目名'} = 1;


スクリプトを追加する

2006.05.02 火曜日
メインページの表示処理に、Perl スクリプトを追加することができます。
Perl の知識が必要ですので注意してください。 skin.cgi の中では自由に変数・サブルーチンなどを追加できます。 また、rgt.cgi 側の変数やサブルーチンを参照する場合、 名前空間が違うため(パッケージ化されているため)先頭に「 rgt:: 」を付加するようにしてください。 ほか、 $skindir でスキンディレクトリのパスが参照可能です。
具体例としては、リストスキンのようなことができます。

各サブルーチンの動作と実行タイミングは以下のとおりです。
いずれもメインページの表示処理時に実行されます。

sub header { ~ }
ヘッダー部表示の直前に実行されます。

sub member { ~ }
エントリ部表示の直前に実行されます。

sub footer { ~ }
フッター部表示の直前に実行されます。

member サブルーチンは、エントリが表示されるたびに実行されます。実際には表示されないエントリ時にも実行されます。(登録数分、実行されるということです)

go top.
RSS 1.0