最近の出来事の分割

TOPページの最近の出来事をキャラ・中古・トーナメントの3つに分割します。
更に、ログイン後もメニューから最近の出来事を確認出来るようにします。

以下のファイルを修正します。
index.cgi
sub/msvslib.pl
sub/routean.pl
tyuko.cgi

trmnt_setei.cgi
trmnt_trmnt.cgi
data_ini/msvs_ini.cgi

HTML部分は適宜修正して下さい。

※注意点
「data」ディレクトリ内にて
今まで 「kinkyo.cgi」に保存していたログを
キャラ用ログファイル=「kinkyo.cgi」
中古用屋ログファイル=「tyukin.cgi」
トーナメント用 ログファイル=「trmkin.cgi」

に分割するだけです。


index.cgi

TOPページ表示の変更です。そのまま入れ替えて下さい。
ルーチン名 sub html_top
行数 458行目近辺
変更前

<table border=1 width='100%' >
<tr>
<td align="center" class="b2" >最近の出来事</td>
</tr>
<tr>
<td>
EOM

#近況読込み
&kinkyo_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<b>$kinkyo</b></font><br>\n";
}

$page_dsp .= <<"EOM";
</td>
</tr>
</table>

変更後 <table border=1 cellspacing=0 cellpadding=2 width='100%'>
<tr> <td align="center" class="b2" colspan="3">【最近の出来事】</B></td>
</tr> <tr>
<td align="center" class="b1" width="33%">キャラクター・勢力</td>
<td align="center" class="b1" width="33%">中古MS売り場</td>
<td align="center" class="b1" width="33%">トーナメント</td>
</tr>
<tr>
< td valign="top">
EOM

#キャラ近況読込み
&kinkyo_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}

$page_dsp .= <<"EOM";
< /td>
< td valign="top">
EOM

#中古近況読込み
&tyukin_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}

$page_dsp .= <<"EOM";
</td>
<td valign="top">
EOM

#トナメ近況読込み
&trmkin_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}

$page_dsp .= <<"EOM";
</td>
</tr>
</table>

msvslib.pl

サブルーチンの追加です。msvslib.plのどこかに追加して下さい。
全体近況書き込み〜勢力近況書き込みのサブルーチンの間に入れると分かりやすいでしょう。
ルーチン名 -
行数 231行目近辺
追加 #--------------------#
#/*@*/中古近況読込 #
#--------------------#
sub tyukin_read
{
# ファイルロック
&filelock("$tyukin_file\.cgi");

if (open(IN,"$data_path/$tyukin_file\.cgi") )
{
@kinkyo_data = <IN>;
close(IN);
}

# ロック解除
&fileunlock("$tyukin_file\.cgi");
}

#-----------------------#
#/*@*/中古近況書き込み #
#-----------------------#
sub tyukin_write
{
my(@kinkyo_regist);

&get_time;

# ファイルロック
&filelock("$tyukin_file\.cgi");

if (open(IN,"$data_path/$tyukin_file\.cgi") )
{
@kinkyo_regist = <IN>;
close(IN);

(@kinkyo_regist > $kinkyo_max) && pop(@kinkyo_regist);
}

unshift(@kinkyo_regist,"$gettime<>$kinkyo<>\n");

open(KIN,">$data_path/$tyukin_file\.cgi");
print KIN @kinkyo_regist;
close(KIN);

# ロック解除
&fileunlock("$tyukin_file\.cgi");
}

#--------------------#
#/*@*/トナメ近況読込 #
#--------------------#
sub trmkin_read
{
# ファイルロック
&filelock("$trmkin_file\.cgi");

if (open(IN,"$data_path/$trmkin_file\.cgi") )
{
@kinkyo_data = <IN>;
close(IN);
}

# ロック解除
&fileunlock("$trmkin_file\.cgi");
}

#-----------------------#
#/*@*/トナメ近況書き込み #
#-----------------------#
sub trmkin_write
{
my(@kinkyo_regist);

&get_time;

# ファイルロック
&filelock("$trmkin_file\.cgi");

if (open(IN,"$data_path/$trmkin_file\.cgi") )
{
@kinkyo_regist = <IN>;
close(IN);

(@kinkyo_regist > $kinkyo_max) && pop(@kinkyo_regist);
}

unshift(@kinkyo_regist,"$gettime<>$kinkyo<>\n");

open(KIN,">$data_path/$trmkin_file\.cgi");
print KIN @kinkyo_regist;
close(KIN);

# ロック解除
&fileunlock("$trmkin_file\.cgi");
}

routean.pl

中古屋部分の修正
&kinkyo_write;  &tyukin_write; に変更します。(routean.pl中の3カ所)
ルーチン名 -
行数 88行目近辺
変更前 #近況に書き込み
$kinkyo = "<font color=#00FF00>$knameが$cnameの$cunitnameを$kaisiポイントで落札しました。</font>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "<font color=#00FF00>$knameが$cnameの$cunitnameを$kaisiポイントで落札しました。</font>";
&tyukin_write;
行数 137行目近辺
変更前 #近況に書き込み
$kinkyo .= "$cnameの$cunitnameはオークションで売れ残りました。</font>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo .= "$cnameの$cunitnameはオークションで売れ残りました。</font>";
&tyukin_write;
行数 163行目近辺
変更前 #近況に書き込み
$kinkyo = "<font color=#00FF00>$cnameの$cunitnameは販売期限を越えたため廃棄されました。</font>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "<font color=#00FF00>$cnameの$cunitnameは販売期限を越えたため廃棄されました。</font>";
&tyukin_write;

tyuko.cgi

中古屋部分の修正
&kinkyo_write;  &tyukin_write; に変更します。(tyuko.cgi中の3カ所)
ルーチン名 -
行数 288行目近辺
変更前 #近況に書き込み
$kinkyo = "<font color=#00FF00>$in{'name'}が$kunitnameを売りに出しました。</font>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "<font color=#00FF00>$in{'name'}が$kunitnameを売りに出しました。</font>";
&tyukin_write;
行数 694行目近辺
変更前 #近況に書き込み
$kinkyo = "<font color=#00FF00>$knameが$cnameの$kunitnameを$in{'kakaku'}ポイントで購入しました。</font>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "<font color=#00FF00>$knameが$cnameの$kunitnameを$in{'kakaku'}ポイントで購入しました。</font>";
&tyukin_write;
行数 721行目近辺
変更前 #近況に書き込み
$kinkyo = "$knameが$kunitnameの価格を$in{'kakaku'}ポイントに\変\更しました。";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "$knameが$kunitnameの価格を$in{'kakaku'}ポイントに\変\更しました。";
&tyukin_write;

trmnt_setei.cgi

トーナメント部分の修正
&kinkyo_write;  &trmkin_write; に変更します。
ルーチン名 -
行数 807行目近辺                                            
変更前 #近況に書き込み
&kinkyo_write;
変更後 #近況に書き込み
&trmkin_write;

trmnt_trmnt.cgi

トーナメント部分の修正
&kinkyo_write;  &trmkin_write; に変更します。
ルーチン名 -
行数 198行目近辺                                            
変更前 #近況に書き込み
$kinkyo = "<FONT COLOR=#FFFF00>「$tmeisyo」が\開\催されました。</FONT>";
&kinkyo_write;
変更後 #近況に書き込み
$kinkyo = "<FONT COLOR=#FFFF00>「$tmeisyo」が\開\催されました。</FONT>";
&trmkin_write;


msvs_ini.cgi

初期設定へのファイル名追加です。msvs_ini.cgiのどこかに追加して下さい。
近況保存ファイル名の下辺りに入れると分かりやすいでしょう。
ルーチン名 -
追加 # 中古近況保存ファイル名
$tyukin_file = "tyukin";
# トナメ近況保存ファイル名
$trmkin_file = "trmkin";

現在稼働中の方へ

1) 「kinkyo.cgi」を初期化
空のファイルの「tyukin.cgi」「trmkin.cgi」をdata内に作成する。
追加したファイルは書き込み可能にしてください。
2) 手作業で「kinkyo.cgi」内のログを
キャラ用ログファイル=「kinkyo.cgi」
中古用屋ログファイル=「tyukin.cgi」
トーナメント用 ログファイル=「trmkin.cgi」
に振り分ける。
大変な作業ではありませんので、こちらをオススメします。


私は手作業で振り分けましたので、1)の方法は確認していません。


ログイン中にも最近の出来事を確認させたい場合

以下の記述でファイルを作成して、ファイル名を「dekigoto.cgi」とでもして、メニューに追加して下さい。
当然ですが、実行権は与えてください。
#!/usr/local/bin/perl

# 初期処理実行
require 'data_ini/init_proc.cgi';

#-------------------#
#/*@*/メイン処理 #
#-------------------#
& kinkyo_list;
exit;

#-------------------#
#/*@*/ページ表示 #
#-------------------#
sub kinkyo_list
{

#関連サブ読み込み
if(!$HEADFOOT) { require 'sub/headfoot.pl'; }

#画面編集
$page_dsp = "";
$page_dsp .= <<"EOM";
< table border=1 width='100%'>
<tr> <td align="center" class="b2" colspan="3">最近の出来事</td>
</tr> <tr>
<td align="center" class="b1" width="33%">キャラクター・勢力</td>
<td align="center" class="b1" width="33%">中古MS売り場</td>
<td align="center" class="b1" width="33%">トーナメント</td>
</tr>
<tr>
< td valign="top">
EOM

#キャラ近況読込み
&kinkyo_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}
$page_dsp .= <<"EOM";
< /td>
< td valign="top">
EOM

#中古近況読込み
&tyukin_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}
$page_dsp .= <<"EOM";
< /td>
< td valign="top">
EOM

#トナメ近況読込み
&trmkin_read;
foreach(@kinkyo_data)
{
($kin_time,$kinkyo) = split(/<>/);
$page_dsp .= "<font class=\"small\">【$kin_time】<br><b>$kinkyo</b></font><br>\n";
}$page_dsp .= <<"EOM";
</td>
</tr>
</table>
</body>
</html>
EOM

$main_title = "$main_title";

#ヘッダー書込み
&header;
#画面書込み
print "$page_dsp";
exit;
}




<<BACK