|
「劇ぱわ」管理者を手助けする改造です。
管理画面中でチームデータを表示し、
「チーム名」「監督名」「パスワード」「アイコン」の変更を出来る様に改造します。
user.datファイルをエディタで編集する煩わしさを解消します。
参加者からの「チーム名」「監督名」の変更依頼や、
「パスワード」変更によるログイン禁止、
「専用アイコン」への変更などに大いに使えると思います♪
(最後に記載してある【使用上の注意】もよく読んで下さい。)
■gekipawa.cgi(90行目付近だと思う……^^;)
if($form{'rule'}) { &rule; exit; }
⊤
exit;
##### デコード&ローカル変数へ受け渡し
ここに1行追加します。(赤字部分)
if($form{'rule'}) { &rule; exit; }
if($form{'henko'}) { require './geki_login.cgi'; &henko; &kanri; exit; } # 管理機能追加
⊤
exit;
##### デコード&ローカル変数へ受け渡し
■geki_login.cgi(304行目付近だと思う……^^;)
if($form{'kanri_mode'}){
print "管理モード画面です。\n";
}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";
ここに11行程追加します。(赤字部分)
if($form{'kanri_mode'}){
print "管理モード画面です。\n";
# 管理モード機能追加
$kanri_team_check = $team;
print "<br><br><center><TABLE border=\"1\" cellpadding=\"5\"><TBODY>\n";
print "<TR align=\"center\"><TD></TD><TD>変更前</TD><TD>変更後</TD></TR>\n";
print "<TR><TD>チーム名</TD><TD>(<b>$kanri_team_check</b>)</TD><TD><input type=text value=$team name=team_s size=20></TD></TR>\n";
print "<TR><TD>監督</TD><TD>(<b>$saku</b>)</TD><TD><input type=text value=$saku name=saku_s size=20></TD></TR>\n";
print "<TR><TD>アイコン</TD><TD>(<b>$icon</b>)</TD><TD><input type=text value=$icon name=icon_s size=20></TD></TR>\n";
print "<TR><TD>パスワード</TD><TD>(<b>$pass</b>)</TD><TD><input type=text value=$pass name=pass_s size=20></TD></TR>\n";
print "<TR><TD align=\"center\" colspan=\"3\">\n";
print "<br><input type=submit name=henko value=\"チームデータ変更する?\">\n";
print "<br><br></TR>\n";
print "</TBODY></TABLE></center>\n";
# 管理機能追加 ここまで
}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";
■geki_login.cgi(327行目付近だと思う……^^;)
_EOF_
&footer;
&chosaku;
}#end login
##### 試合登録確認
ここに1行入れます。(赤字部分)
_EOF_
print "<input type=hidden name=kanri_team_check value=\"$kanri_team_check\">"; # 管理機能追加
&footer;
&chosaku;
}#end login
##### 試合登録確認
■geki_login.cgi(最後の2行です)
}#end delete
<< ここに入れてね >>
1;
<< ここに入れてね >>に< ここから > < ここまで >を入れて下さい。
}#end delete
#------------< ここから >--------------------- (←この行は無くてもOK!)
#### チームデータ変更(管理用)
sub henko{
$kanri_team_check = $form{'kanri_team_check'};
$team_s = $form{'team_s'};
$saku_s = $form{'saku_s'};
$icon_s = $form{'icon_s'};
$pass_s = $form{'pass_s'};
# ロック開始
open(GL,"+<$leaguefold/$lockfile") || &error('指定されたファイルが開けません。');
eval 'flock(GL,2);';
@gamelock = <GL>;
($gamecheck, $gametime) = split(/<>/, $gamelock[0]);
if($gamecheck eq 0 || $times > $gametime + 60 * 2){
$gamelock = "1<>$times<>\n";
}else{ &error('メンテナンス中です。もうちょっと待っててね。'); }
truncate (GL, 0);
seek(GL,0,0); print GL $gamelock;
close(GL);
eval 'flock(GL,8);';
# ロック終了
open(US,"+<$leaguefold/$userfile") || &error('指定されたファイルが開けません。');
eval 'flock(US,2);';
@users = <US>;
foreach(@users){
($checksaku,$checkpass,$d,$checkteam) = split /<p>/;
($saku, $pass, $home, $team, $icon, $date, $ip, $teamdata, $pointdata, $bosstype, $charadata, $gamedata, $campflag) = split /<p>/;
if($team eq $kanri_team_check){
$_ = "$saku_s<p>$pass_s<p>$home<p>$team_s<p>$icon_s<p>$date<p>$ip<p>$teamdata<p>$pointdata<p>$bosstype<p>$charadata<p>$gamedata<p>$campflag<p>\n";
last;
}
}
truncate (US, 0);
seek(US,0,0); print US @users;
close(US);
eval 'flock(US,8);';
# ロック解除
$gamelock = "0<>$times<>\n";
open(GL,"+<$leaguefold/$lockfile") || &error('指定されたファイルが開けません。');
eval 'flock(GL,2);';
truncate (GL, 0);
seek(GL,0,0); print GL $gamelock;
close(GL);
eval 'flock(GL,8);';
# ロック解除終了
$form{'$key'} = "kanri";
$form{'kanripass'} = $kanri_pass;
} #end_henko
#------------< ここまで >--------------------- (←この行は無くてもOK!)
1;
【使用上の注意】
用量用法を守って正しくお使い下さい。(ピンポ〜ン♪)
管理画面中のチーム表示の下に、
「チーム名」「監督名」「パスワード」「アイコン(画像ファイル名)」が表示されます。
変更したい項目を書き換えて、「チームデータ変更する?」をクリックして下さい。
文字数チェックなどは行っていません。(ご自分で確認して入力して下さい。)
アイコン(画像ファイル)の指定は、拡張子(.gif)まで入力して下さい。
メンテナンス中には使用できません。通常の状態で使用して下さい。
作業中に試合が行われても参加者には「メンテナンス中」と表示します。(書き込み作業の一瞬だけです。)
運悪く、試合と重なった場合は、書きかえられません。(ほんの一瞬のタイミングで……)
書き換えられなかった場合は、作業をやり直して下さい。
ホームページURLなど他の項目も変更したい方は、ご自分で追加しましょう♪
|