GMS_Perl:004
GMS_Perlスキンファイル仕様書:004

スキンファイル仕様書  

GMS_Perlのスキンファイルの仕様書です
ここにかかれていることをちゃんと記述しないと正常に動作いたしません


Perl5以前のVerでは動作いたしません

GMS_Perlのスキンファイルはskin.cgi、htmlスキン、スキン画像で構成されます

スキンにゲームの画像を利用される場合は、
ゲーム運営側の許可を取ってから配布してください。


>>skin.cgi仕様書
>>htmlスキン仕様書
>>htmlスキン特殊タグ
>>ソート処理仕様書
>>ログファイルの仕様について
>>抜き出し機能
>>検索抜き出し機能
>>画像アップ用関数 (サンプルスキン

わからないことがあれば掲示板かメールで聞いてください

 
skin.cgi仕様書  

サンプルのskin.cgiをご覧になりながら説明を見てみてください

ここで定義されてない関数、変数はユーザーで自由に作成してかまいません


skin.cgiのファイルの先頭に必ず
////////////////////////////////////////////////////////////
package Skin;
////////////////////////////////////////////////////////////
を定義する必要があります これを忘れると動作いたしません

スキンの名前、スキン規格Verを定義する必要があります
////////////////////////////////////////////////////////////
スキンの名前 --- $Ver
スキン規格Ver --- $SkinVer
////////////////////////////////////////////////////////////
スキン規格Verはメインプログラムより読み込んだスキンが
使用できるかチェックするためにあります
使用できるメインプログラムと同じ数値にしてください)

現在のスキンVerは 004 です
$SkinVer = 004;と定義お願いします

例:
$Ver = "GMS_Perl:004";
$SkinVer = 004;

スキンファイルの文字コードを定義してください。
////////////////////////////////////////////////////////////
$CharCode = "sjis";
////////////////////////////////////////////////////////////
"sjis","euc","jis"で指定してください。
シフトJISの場合、必ず必要ではありません

skin.cgiには必ず定義しないといけない変数があります
これに定義しない場合 エラーがでます
////////////////////////////////////////////////////////////
$SkinDir = './skin/';
////////////////////////////////////////////////////////////
これはhtmlスキンを入れるディレクトリを定義しています
この変数については必ず/で閉じてください

これは必ずskinにする必要はありません
この変数については利用するユーザー側でも変更されることがあります
配布するときのフォルダ構成にしておいてください
(スキンを配布するとき htmlスキンをskinというディレクトリに入れる場合は
./skin/と定義しておけばよい)

////////////////////////////////////////////////////////////
メインページスキン
$Main_html = 'main.html';
エラーページスキン
$Error_html = 'error.html';
登録ページスキン
$Reg_html = 'reg.html';
検索ページスキン(ファイル名のみ記入)
$Find_html = 'find.html';
管理ページスキン
$Admin_html = 'admin.html';
ユーザー管理ページスキン
$User_html = 'user.html';
ユーザーリストページスキン
$EditList_html = 'edit_list.html';
管理者登録変更ページスキン
$AdminEdit_html = 'admin_edit.html';
ユーザー登録変更ページスキン
$UserEdit_html = 'user_edit.html';
パスワード変更ページスキン
$PassEdit_html = 'pass_edit.html';
レスページスキン 004
$Res_html = 'res.html';
管理用レスページスキン 004
$ResList_html = 'res_list.html';
////////////////////////////////////////////////////////////
これらの変数名は絶対に変更してはいけません
対応するhtmlスキンファイル名を入力します
この変数については利用するユーザー側でも変更されることがあります
配布するときのフォルダ構成にしておいてください
(スキンを配布するとき htmlスキンの名前にしておけばよい)

メイン表示処理をするときに必ずskin.cgiの
Main_htmlサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Main_html
{

}

////////////////////////////////////////////////////////////
このサブルーチンにメイン表示される時に処理する処理を記述してください
何もしない場合sub Main_html { }と書き込んでおくだけでよい

メンバー登録フォーム表示処理をするときに必ずskin.cgiの
Add_Memberサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Add_Member
{

}

////////////////////////////////////////////////////////////
このサブルーチンにメンバー登録フォーム表示処理時に処理する処理を
記述してください
何もしない場合sub Add_Member { }と書き込んでおくだけでよい

検索フォーム表示処理をするときに必ずskin.cgiの
Findサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Find
{

}

////////////////////////////////////////////////////////////
このサブルーチンに検索フォーム表示処理時に処理する処理を
記述してください
何もしない場合sub Find { }と書き込んでおくだけでよい

管理フォーム表示処理をするときに必ずskin.cgiの
Adminサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Admin
{

}

////////////////////////////////////////////////////////////
このサブルーチンに管理フォーム表示処理時に処理する処理を
記述してください
何もしない場合sub Admin { }と書き込んでおくだけでよい

ユーザー管理フォーム表示処理をするときに必ずskin.cgiの
Userサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub User
{

}

////////////////////////////////////////////////////////////
このサブルーチンにユーザー管理フォーム表示処理時に処理する処理を
記述してください
何もしない場合sub User { }と書き込んでおくだけでよい

管理用レスリストフォーム表示処理をするときに必ずskin.cgiの
Res_Listrサブルーチンが呼ばれます
////////////////////////////////////////////////////////////004
sub Res_List
{

}

////////////////////////////////////////////////////////////
このサブルーチンに管理用レスリストフォーム表示処理時に処理する処理を記述してください
何もしない場合sub Res_List { }と書き込んでおくだけでよい

レスフォーム表示処理をするときに必ずskin.cgiの
Resサブルーチンが呼ばれます
////////////////////////////////////////////////////////////004
sub Res
{

}

////////////////////////////////////////////////////////////
このサブルーチンにレスフォーム表示時に処理する処理を記述してください
@_[0] に処理するメンバーデータが入っているので処理に必要あれば利用してください。
何もしない場合sub Res { }と書き込んでおくだけでよい

フォームデコード処理をするときに必ずskin.cgiの
Decodeサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Decode
{

}

////////////////////////////////////////////////////////////
このサブルーチンにデコード処理する処理を
記述してください
何もしない場合sub Decode { }と書き込んでおくだけでよい

$Main::keyで処理中のフォームのキー名が取得できます
$Main::Val$Main::keyの内容が取得でききます

例:
たとえば<TEXTAREA name="msg"></TEXTAREA>
で取得したデータから改行を<BR>に変更する処理
if ($Main::key eq "msg") { //キーがmsgかチェック//
  $Main::val =~ s/\r\n/<br>/g;
  $Main::val =~ s/\r/<br>/g;
  $Main::val =~ s/\n/<br>/g;
  $Main::val =~ s/&lt;br&gt;/<br>/g;
}


フォームデコード処理後必ずskin.cgiの
DoneDecodeサブルーチンが呼ばれます
////////////////////////////////////////////////////////////002
sub DoneDecode
{

}

////////////////////////////////////////////////////////////
このサブルーチンにデコード処理後に処理する処理を
記述してください
何もしない場合sub DoneDecode { }と書き込んでおくだけでよい


メンバーリスト表示処理をするときに必ずskin.cgiの
ViewListサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub ViewList
{

}

////////////////////////////////////////////////////////////
このサブルーチンにメンバーリスト表示処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
メンバーリストが表示できません

@_[0] に処理するメンバーデータが入っているのでこのデータから
項目データを取得する処理を記述してください

例:
($nick,$job,$BaseLv,$JobLv,$msg) = split(/<>/,@_[0]);


項目データを今度はスキンに適応させるための処理もこのサブルーチンに
記述しないといけません

htmlスキンの中に記述した<!--キー名-->をこの項目データに書き換えます
キー名には使ってはいけないものがあります
これについてはhtmlスキンの説明に書いてあります

<!--KEY-->に項目データを挿入した場合
////////////////////////////////////////////////////////////
$Main::SKIN{'KEY'} = "挿入するデータ";
////////////////////////////////////////////////////////////
と記述します

例:
htmlスキン<!--msg-->を項目データを取得した$msgに書き換えます
$Main::SKIN{'msg'} = $msg;

メンバーデータを登録処理をするときに必ずskin.cgiの
Regサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Reg
{

 return
作成した登録データ配列;
}

////////////////////////////////////////////////////////////
このサブルーチンに メンバーデータを登録処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
正常に登録できません

$Main::in{'フォームキー名'}に登録フォームで入力されたデータが入っています
そのデータを利用して登録データ配列又はデータチェックを行ってください

ここで登録データのチェックも行ってください
エラーがある場合&Main::Error("エラーメッセージ");を呼び出すことで
エラーメッセージを表示します

例:
ニックネームが入力されていない場合”ニックネームが入力されていません。”という
エラーメッセージを表示させる
if ($Main::in{''nick} eq ""){ &Main::Error("ニックネームが入力されていません。"); }

例:
$FormData”"ニックネーム<>ベースレベル<>ジョブレベル<>メッセージ<>
というデータを入れる
$FormData = "$Main::in{'nick'}<>$Main::in{'BaseLv'}<>$Main::in{'JobLv'}<>$Main::in{'msg'}<>";


最後に必ず作成した登録データ配列を返します

例:
$FormDataに入っているデータを返す
return $FormData;

管理用メンバーリスト表示処理をするときに必ずskin.cgiの
AdminEditListサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub AdminEditList
{

}

////////////////////////////////////////////////////////////
このサブルーチンに管理用メンバーリスト表示処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
管理用メンバーリストが表示できません

@_[0] に処理するメンバーデータが入っているのでこのデータから
項目データを取得する処理を記述してください

処理は sub ViewList { }と同じですのでViewListに送ってかまいません

例:
@_[0]をViewListサブルーチンに送る
&ViewList(@_[0]);

管理用メンバーデータ表示処理をするときに必ずskin.cgiの
AdminEditDATAサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub AdminEditDATA
{

}

////////////////////////////////////////////////////////////
このサブルーチンに管理用メンバーデータ表示処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
管理用メンバーリストデータが表示できません

@_[0] に処理するメンバーデータが入っているのでこのデータから
項目データを取得する処理を記述してください

処理がsub ViewList { }と同じであればのでViewListに送ってかまいません

例:
@_[0]をViewListサブルーチンに送る
&ViewList(@_[0]);

管理用パスワード変更フォーム表示をするときに必ずskin.cgiの
AdminPassEditサブルーチンが呼ばれます
////////////////////////////////////////////////////////////002
sub AdminPassEdit
{

}

////////////////////////////////////////////////////////////
このサブルーチンに管理用パスワード変更フォームを表示するときに処理する
処理を記述してください
何もしない場合sub AdminPassEdit { }と書き込んでおくだけでよい

管理用メンバーデータ変更処理をするときに必ずskin.cgiの
AdminDoEditサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub AdminDoEdit
{

 return 登録データ配列;
}

////////////////////////////////////////////////////////////
このサブルーチンに管理用メンバーデータ変更処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
正常に登録変更できません

@_[0] に現在登録されているするメンバーデータが入っているのでこのデータを使う場合は
このデータから項目データを取得する処理を記述してください


処理がsub Reg { }と同じであればのでRegに送ってかまいません

例:
Regサブルーチンに送って帰ってきたデータを返す
return &Reg;


最後に必ず登録変更したデータ配列を返します

例:
$FormDataに入っているデータを返す
return $FormData;

ユーザー用管理メンバーリスト表示処理をするときに必ずskin.cgiの
UserEditListサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub UserEditList
{

}

////////////////////////////////////////////////////////////
このサブルーチンにユーザー用管理メンバーリスト表示処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
ユーザー用管理メンバーリストが表示できません

@_[0] に処理するメンバーデータが入っているのでこのデータから
項目データを取得する処理を記述してください

処理がsub ViewList { }と同じであればのでViewListに送ってかまいません

例:
@_[0]をViewListサブルーチンに送る
&ViewList(@_[0]);

ユーザー用管理メンバーデータ表示処理をするときに必ずskin.cgiの
UserEditDATAサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub UserEditDATA
{

}

////////////////////////////////////////////////////////////
このサブルーチンにユーザー用管理メンバーデータ表示処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
ユーザー用管理メンバーリストデータが表示できません

@_[0] に処理するメンバーデータが入っているのでこのデータから
項目データを取得する処理を記述してください

処理がsub ViewList { }と同じであればのでViewListに送ってかまいません

例:
@_[0]をViewListサブルーチンに送る
&ViewList(@_[0]);

ユーザー用パスワード変更フォーム表示をするときに必ずskin.cgiの
UserPassEditサブルーチンが呼ばれます
////////////////////////////////////////////////////////////002
sub UserPassEdit
{

}

////////////////////////////////////////////////////////////
このサブルーチンにユーザー用パスワード変更フォームを表示するときに処理する
処理を記述してください
何もしない場合sub UserPassEdit { }と書き込んでおくだけでよい

ユーザー用管理メンバーデータ変更処理をするときに必ずskin.cgiの
UserDoEditサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub UserDoEdit
{

 return 変更データ配列;
}

////////////////////////////////////////////////////////////
このサブルーチンにユーザー用管理メンバーデータ変更処理時に処理する処理を
記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
正常に登録変更できません

@_[0] に現在登録されているするメンバーデータが入っているのでこのデータを使う場合は
このデータから項目データを取得する処理を記述してください


処理がsub Reg { }と同じであればのでRegに送ってかまいません

例:
Regサブルーチンに送って帰ってきたデータを返す
return &Reg;


最後に必ず登録変更したデータ配列を返します

例:
$FormDataに入っているデータを返す
return $FormData;

メッセージ表示処理をするときに必ずskin.cgiの
ViewMsgサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub ViewMsg
{

}

////////////////////////////////////////////////////////////
このサブルーチンにメッセージ表示時に処理する処理を記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
正常にメッセージ表示できません

002スキンと004スキンでは仕様が異なります。
-------004-----------------------------------------------------
@_[0] に表示モードが入っています。この表示モードに従ってメッセージを作成します。
@_[1] にメッセージメッセージが入っている

作成したメッセージを必ず返してください。

例:
$msgに入っているデータを返す
return $msg;

-------002-----------------------------------------------------
@_[0] にメッセージが入っているのでこのデータからメッセージ表示時に表示する
データを作成してください

作成されたデータは必ず $Main::SKIN{'Data'} に入れてください

例:
$Main::SKIN{'Data'} = "メッセージ:@_[0]";


エラーメッセージ表示をするときに必ずskin.cgiの
UserPassEditサブルーチンが呼ばれます
////////////////////////////////////////////////////////////002
sub ErrorMsg
{

}

////////////////////////////////////////////////////////////
このサブルーチンにエラーメッセージを表示するときに処理する
処理を記述してください
何もしない場合sub ErrorMsg { }と書き込んでおくだけでよい

エラーメッセージ用のスキンファイルが読み込めなかった場合の
エラーメッセージを表示するときに必ずskin.cgiのErrorサブルーチンが呼ばれます
////////////////////////////////////////////////////////////
sub Error
{
 print "Content-type: text/html\n\n";

 表示処理内容

 exit;
}

////////////////////////////////////////////////////////////
このサブルーチンにエラーメッセージ表示時に処理する処理を記述してください
このサブルーチンでは必ず処理してください ここでデータ処理しない場合
正常にエラー表示できません

@_[0] にメッセージが入っているのでこのデータからメッセージ表示時に表示する
データを作成してください

例:
print "@_[0]";

必ず最後に exit; を記述してください

例:
exit;


エラーメッセージ等を設定できます。
////////////////////////////////////////////////////////////004
sub SkinMessage
{

}

////////////////////////////////////////////////////////////
@_[0] に入っているメッセージ番号を元にメッセージを返します。

詳しくはskin.cgiをご覧ください。


新規登録時にメール送信する時の本文を作成します。
////////////////////////////////////////////////////////////004
sub MailSend
{

}

////////////////////////////////////////////////////////////
@_[0] : 登録No
@_[1] : 登録Name
@_[2] : 登録時のIPアドレス
@_[3] : スキンファイルのsub Regで作成したログ配列

上の項目を元ににメール本文を作成して作成した本文を返してください。

詳しくはskin.cgiをご覧ください。


レス表示時に処理要求がきますのでレスデータを返してください
////////////////////////////////////////////////////////////004
sub ViewRes
{

}

////////////////////////////////////////////////////////////
@_[0] : 表示モード 0:メインリスト 1:レス表示用 2:ユーザー管理用リスト表示 3:管理者管理用リスト表示
@_[1] : ユーザーNo
@_[2] : すべてのレス数
@_[3] : レス表示行No
@_[4] : レスログ


上の項目を元にレスデータを作成して作成したデータを返してください。

詳しくはskin.cgiをご覧ください。


レス書き込み時に処理要求がきますので書き込みレスログを返してください
////////////////////////////////////////////////////////////004
sub Write_Res
{

}

////////////////////////////////////////////////////////////
sub Reg{ }と同じなのでそちらを参考にしてください。

レスログを作成して作成したデータを返してください。

詳しくはskin.cgiをご覧ください。

 
htmlスキンの仕様書  

htmlスキンは<!--キー名-->で項目データを挿入するようにしてあります
しかし一部のキー名はメインで使われているのでskin.cgiで使用することはできません

もちろん<!--キー名-->が使用してはいけない場合
$Main::SKIN{''キー名}にデータを入れてはいけません(一部を除く)
それ以外のものは作成してかまいません



スキン側でキャラネームは保存しないでくださいメイン側で保存します

必ずキャラネームは NAME というフォームネームで取得
パスワードは PASS で取得

管理用のパスワードは ADMIN_PASS という名前にしてください

検索ワード等のメインでも使用するフォーム名は変更しないでください
使用すると正常に動作いたしません

htmlスキンにかならず<!--COPYRIGHT-->を入れてください
でないとそのスキンは表示されません



サンプルのhtmlスキンをご覧になりながら説明を見てみてください



フォームについて
画像をアップする必要がありフォームは必ず以下のの通りにしてください
<FORM action="<!--SCRIPT-->" method="<!--METHOD-->" enctype="multipart/form-data">

enctype="multipart/form-data"が無い場合画像がアップできません

<FORM action="<!--SCRIPT-->" method="<!--METHOD-->" >の後には
かならず<!--EDITFORM-->をいれてください

注意
各htmlスキンごとに<!--EDITFORM-->で挿入されるinputタグが決まってますので
たとえば登録フォームでソートの<FORM></FORM>タグ内に<!--EDITFORM-->を
利用してもソート処理はいたしません。

例:
<FORM action="<!--SCRIPT-->" method="<!--METHOD-->" enctype="multipart/form-data"><!--EDITFORM-->


////////////////////////////////////////////////////////////
<!--HOME-->
////////////////////////////////////////////////////////////
config.cgiで記述した戻り先ホームページのアドレスが入ります

例:
<A href="<!--HOME-->">戻る</A>

////////////////////////////////////////////////////////////
<!--VIEW_MEMBER-->
////////////////////////////////////////////////////////////
メンバーリストを表示するアドレスが入ります

例:
<A href="<!--VIEW_MEMBER-->">メンバー表示</A>

////////////////////////////////////////////////////////////
<!--VIEW_LIST-->
////////////////////////////////////////////////////////////
一覧表示を表示するアドレスが入ります

例:
<A href="<!--VIEW_LIST-->">一覧表示</A>

////////////////////////////////////////////////////////////
<!--ADD_REG-->
////////////////////////////////////////////////////////////
メンバー登録をするアドレスが入ります

例:
<A href="<!--ADD_REG-->">メンバー登録</A>

////////////////////////////////////////////////////////////
<!--FIND-->
////////////////////////////////////////////////////////////
検索画面を表示するアドレスが入ります

例:
<A href="<!--FIND-->">検索</A>

////////////////////////////////////////////////////////////
<!--ADMIN-->
////////////////////////////////////////////////////////////
管理者用画面を表示するアドレスが入ります

例:
<A href="<!--ADMIN-->">管理用</A>

////////////////////////////////////////////////////////////
<!--USER_EDIT-->
////////////////////////////////////////////////////////////
ユーザー管理画面を表示するアドレスが入ります

例:
<A href="<!--USER_EDIT-->">登録変更</A>

////////////////////////////////////////////////////////////
<!--LISTNO-->
////////////////////////////////////////////////////////////
メンバーデータを一人だけ表示するアドレスが入ります

例:
<A href="<!--LISTNO-->">キャラネーム名</A>

////////////////////////////////////////////////////////////
<!--COUNTER-->
////////////////////////////////////////////////////////////
カウンターを有効にしている場合はカウント数が入ります。

例:
[<!--COUNTER-->]

////////////////////////////////////////////////////////////
<!--SCRIPT-->
////////////////////////////////////////////////////////////
スクリプトのファイル名が入ります

例:
<FORM action="<!--SCRIPT-->" method="<!--METHOD-->">

////////////////////////////////////////////////////////////
<!--METHOD-->
////////////////////////////////////////////////////////////
config.cgiで記述したmethodの形式が入ります

例:
<FORM action="<!--SCRIPT-->" method="<!--METHOD-->">

////////////////////////////////////////////////////////////
<!--PAGE_TITLE-->
////////////////////////////////////////////////////////////
config.cgiで記述したページタイトルが入ります

////////////////////////////////////////////////////////////
<!--TITLE-->
////////////////////////////////////////////////////////////
config.cgiで記述したタイトルが入ります

例:
<TITLE><!--TITLE--></TITLE>

////////////////////////////////////////////////////////////
<!--VER-->
////////////////////////////////////////////////////////////
GMS_PerlのVerが入ります

////////////////////////////////////////////////////////////
<!--COPYRIGHT-->
////////////////////////////////////////////////////////////
GMS_Perlの著作権情報が入ります

////////////////////////////////////////////////////////////
<!--SKIN_VER-->
////////////////////////////////////////////////////////////
GMS_PerlのスキンファイルのVerが入ります

////////////////////////////////////////////////////////////
<!--SKIN_COPYRIGHT-->
////////////////////////////////////////////////////////////
GMS_Perlのスキンファイルの著作権情報が入ります

////////////////////////////////////////////////////////////
<!--SKIN_DIR-->
////////////////////////////////////////////////////////////
skin.cgiのスキンディレクトリが入ります

例:
<IMG src="<!--SKIN_DIR-->title.gif">

////////////////////////////////////////////////////////////
<!--IMAGE_W-->
////////////////////////////////////////////////////////////
アップできる画像の最大幅

////////////////////////////////////////////////////////////
<!--IMAGE_H-->
////////////////////////////////////////////////////////////
アップできる画像の最大高さ

////////////////////////////////////////////////////////////
<!--NO-->
////////////////////////////////////////////////////////////
登録データのNoが入ります

////////////////////////////////////////////////////////////
<!--NAME-->
////////////////////////////////////////////////////////////
登録データのNAMEが入ります

////////////////////////////////////////////////////////////
<!--HOST-->
////////////////////////////////////////////////////////////
登録データのホストデータが入ります

////////////////////////////////////////////////////////////
<!--REGTIME-->
////////////////////////////////////////////////////////////
登録した日が入ります

////////////////////////////////////////////////////////////
<!--UPTIME-->
////////////////////////////////////////////////////////////
登録変更した日が入ります

////////////////////////////////////////////////////////////
<!--UPTIME-->
////////////////////////////////////////////////////////////
登録変更した日が入ります

////////////////////////////////////////////////////////////
<!--SORTDISABLED-->
////////////////////////////////////////////////////////////
ソート処理を無効のときにDisabledとデータが入ります
これはキャラ1人を表示するときにソートを無効にするために使用します

例:
ソート:<SELECT name="view" <!--SORTDISABLED-->>
<OPTION value="00NoA" <!--00NoA-->>No昇順</OPTION>
</SELECT>


////////////////////////////////////////////////////////////
<!--LIST_NUM-->
////////////////////////////////////////////////////////////
登録リストの数が入ります

例:
現在登録数:<!--LIST_NUM-->名

////////////////////////////////////////////////////////////
<!--DATA-->
////////////////////////////////////////////////////////////
メインで使用されるデータが入ります
これについてはいろいろなデータが入るので

これを記述しないといけないのは
メインページスキン、検索ページスキン、ユーザーリストページスキンです
サンプルのhtmlスキンを参考にしてください

////////////////////////////////////////////////////////////
<!--FINDWORD-->
////////////////////////////////////////////////////////////
検索文字が入ります(検索ページスキンのみ)

////////////////////////////////////////////////////////////
<!--AND-->
<!--OR-->
////////////////////////////////////////////////////////////
selected処理のために利用(検索ページスキンのみ)

サンプルのhtmlスキンを参考にしてください

////////////////////////////////////////////////////////////004
<!--DONE_MSG-->
////////////////////////////////////////////////////////////
ユーザーリストページスキン($EditList_htm)内に、完了メッセージを表示するためのタグ。

////////////////////////////////////////////////////////////004
<!--RES-->
////////////////////////////////////////////////////////////
 メインページスキン($Main_html)の、内でレスを表示するために使用するタグ。
 レスページスキン($Res_html)ですべてのレスを表示するために使用するタグ。
 
htmlスキン特殊タグ  

htmlスキン特殊タグ
メンバーのデータはメインページスキンのファイルの
<MAINLIST>から</MAINLIST>を使用します
<MAINLIST>を記述した行はそれ以外のタグなどを書いてはいけません

例:
<MAINLIST>
ここに書いたデータがメンバーリストで使用されでデータ
</MAINLIST>


一覧表示のデータはメインページスキンのファイルの
<REPORTLIST>から</REPORTLIST>を使用します
<REPORTLIST>を記述した行はそれ以外のタグなどを書いてはいけません

例:
<REPORTLIST>
ここに書いたデータが一覧表示リストで使用されでデータ
</REPORTLIST>


 
ソート処理仕様書  

ソート処理選択フォームはhtmlスキン内で作ってください
ただし名前はview 送る値についてもいろいろ決めてあります

たとえば 送る値が 00TeA だった場合

送る値ははじめの2桁がソート処理をするログの位置(必ず2桁で)
ただし00から02まではメインプログラムすでに使用されていますので
スキンログファイルのソートは03からになります

たとえば スキンファイルのログデータが
ニックネーム<>パーティー名<>サーバー名<>
となっている場合
ニックネームは 03、パーティー名は 04、サーバー名は 05でソート処理できます
99まで指定可能です

その次の2文字がソートするデータの種類です
Teの場合は テキスト、Noの場合は 数値です
ソートデータがテキストの場合はTeをつければいいだけです

その次の1文字が昇順か降順を指定しています
Aの場合は昇順、Zは場合は降順です
ソートデータを昇順にならべたい場合はAをつければいいだけです

だからニックネームを昇順で並べたい場合
ニックネームはログファイルのデータ位置が1番目に出てくるので
それの値に2を足した3がデータ位置なので 03
ニックネームはテキストなので Te
昇順で並べたいので A03TeAとなります

例:
<FORM action="<!--SCRIPT-->" method="<!--METHOD-->"><!--EDITFORM-->
ソート:<SELECT name="view" <!--SORTDISABLED-->>
<OPTION value="00NoA" <!--00NoA-->>No昇順</OPTION>
<OPTION value="00NoZ" <!--00NoZ-->>No降順</OPTION>
<OPTION value="01TeA" <!--01TeA-->>Name昇順</OPTION>
<OPTION value="01TeZ" <!--01TeZ-->>Name降順</OPTION>
<OPTION value="02NoA" <!--02NoA-->>更新日昇順</OPTION>
<OPTION value="02NoZ" <!--02NoZ-->>更新日降順</OPTION>
<OPTION value="05NoA" <!--05NoA-->>BaseLv昇順</OPTION>
<OPTION value="05NoZ" <!--05NoZ-->>BaseLv降順</OPTION>
<OPTION value="06NoA" <!--06NoA-->>JobLv昇順</OPTION>
<OPTION value="06NoZ" <!--06NoZ-->>JobLv降順</OPTION>
<OPTION value="10TeA" <!--10TeA-->>Party昇順</OPTION>
<OPTION value="10TeZ" <!--10TeZ-->>Party降順</OPTION>
<OPTION value="11TeA" <!--11TeA-->>Guild昇順</OPTION>
<OPTION value="11TeZ" <!--11TeZ-->>Guild降順</OPTION>
</SELECT>
<INPUT type="submit" value="ソート表示" <!--SORTDISABLED-->></FORM>


かならず value="????" の後には <!--?????-->と入れてください(?????は両方同じもの)
これは選択されているものにselectedをつけるためです

 
ログファイルの仕様について  


skin.cgiが返すログは必ず、項目を<>で区切ってください。
これはソート処理をするときに<>ごとで処理するためであり<>以外で区切るとソート処理が
できません。

返すログは改行してはいけない。
必ず改行は<BR>タグに変換して1行のログで返してください。

 
抜き出し機能  


簡単な説明しかありません。
分からないことは掲示板、メールで問い合わせ願います。


検索では全項目が検索対象になりますが、この抜き出し機能を利用すると特定の項目だけが
対象になります。しかも、ソートが有効のまま利用できます。

抜き出し機能を利用するには、以下の項目のすべてのデータをGMSに送ってください。


memberlist.cgi?extract=1&extstr=XXX&cmp=0



extract という名前で抜き出し対象となる項目の番号をGMSに送ります。

extract
数値 説明
0以上
スキンログの<>で区切ってある番号になります。
必ず0から始まります。

たとえば スキンファイルのログデータが

ニックネーム<>パーティー名<>サーバー名<>

となっている場合で パーティー名を抜き出し対象にしたい場合は1となり
extractという名前で1という値を送ってやればよい

ニックネーム -> 0
パーティー名 -> 1
サーバー名 -> 2

この部分はスキンによって変わります。

-1
GMSのログの NAME <!--NAME--> が抜き出し対象になります。

-2
GMSのログの REGTIME <!--REGTIME--> が抜き出し対象になります。

-3
GMSのログの UPTIME <!--UPTIME--> が抜き出し対象になります。

抜き出し対象となる項目と比較する文字列又は数値を
extstrという名前で文字列又は数値を送ります。


比較項目は
cmp
という名前で以下の数値のどれかを送ります。
何も送られなかった場合は、自動的に等しい場合の処理になります。

cmp
数値 説明
0
 等しい場合リスト表示されます。

 ==

1
 extstrの値より比較対象が大きい場合リスト表示されます。

 >

-1
 extstrの値より比較対象が小さい場合リスト表示されます。

 <

2
 extstrの値が比較の数値以上の場合リスト表示されます。

 >=

-2
 extstrの値が比較の数値以下の場合リスト表示されます。

 <=

抜き出し機能が利用できるかできないかのチェックは
$Main::gms_verで GMSのバージョンが取得できます
1.601以上だと抜き出し機能利用できます。



if($Main::gms_ver >= "1.601"){
 抜き出し機能用処理
}


 
検索抜き出し機能  


 詳細はそのうち


 

This Homepage isJpanese only.
当サイトはInternet Explorer6.0のみで確認しております。
Internet Explorer6.0以外で見られた場合デザインが崩れることがあります。
Internet Explorer5.5以降で解像度は1024x768以上でご覧下さい。