劇ぱわ 改造方法
管理画面でチーム情報を変更
要旨
管理画面でチーム情報の変更をするための改造です。
参加者には関係有りませんが、劇ぱわ管理者の手助けになる改造です。
管理画面において、選択したチームの「チーム名」「監督名」「パスワード」「アイコン」「URL」を変更できる様に改造します。
「user.dat」ファイルをエディタで編集する煩わしさを解消します。
参加者からの「チーム名」「監督名」の変更依頼や、「パスワード」変更によるログイン禁止、「専用アイコン」への変更などに大いに使えると思います♪
※2011/01/11内容改訂(チームのセレクト・URLの変更)
※2011/07/18内容変更(セキュリティ強化)
管理画面でチーム情報を変更
「gekipawa.cgi」ファイルをエディタで開きます。(90行目付近だと思う……^^;)
if($form{'rule'}) { &rule; exit; } ⊤ exit; ##### デコード&ローカル変数へ受け渡し
ここに下記赤字部分を追加します。
if($form{'rule'}) { &rule; exit; }
if($form{'henko'}) { require './geki_login.cgi'; &henko; &kanri; exit; } # 管理機能追加
⊤
exit;
##### デコード&ローカル変数へ受け渡し
更に下記部分を探します。(無編集なら1,069行目)
##### 管理用画面 sub kanri{ if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); } &header; print <<"_EOF_"; <font color="$tcolor" size="$tsize">管理モード画面</font><br> <br><br><br> チーム名を入力してください。<br> <form action=$cgifile method=$method> <input type=hidden name=login value=1> <input type=hidden name=kanri_mode value=1> <input type=text name=team size=15> <input type=submit name=login value="Enter"> </form> <br><br> _EOF_ # コメント
を下記の様に編集します。
下記の変更は、「チームの指定方法」を「手動入力」から「プルダウン選択」へ変更するものです。
※2011/07/18 下記を追加しました。
<input type=hidden name=kanripass value=$kanri_pass>
##### 管理用画面 sub kanri{ if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); } &header; print <<"_EOF_"; <font color="$tcolor" size="$tsize">管理モード画面</font><br> <br><br><br> _EOF_ #チーム名を入力してください。<br> print <<"_EOF_"; <form action=$cgifile method=$method> <input type=hidden name=login value=1> <input type=hidden name=kanri_mode value=1> _EOF_ #<input type=text name=team size=15> <input type=submit name=login value="Enter"> open(US,"+<$leaguefold/$userfile") || &error('指定されたファイルが開けません。'); @users = <US>; close(US); print "<select name=team>\n"; foreach(@users) { my ($saku,$dmy,$dmy,$team,$icon,$dmy,$dmy,$teamdata) = split /<p>/; print "<option value=$team>$team\n"; } print <<"_EOF_"; </select> <input type=hidden name=pass value=$kanri_pass> <input type=hidden name=kanripass value=$kanri_pass> <input type=submit name=login value=Enter> </form> <br><br> _EOF_ # コメント
次に「geki_login.cgi」を編集します。
下記部分を探して下さい。(無編集なら304行目)
if($form{'kanri_mode'}){ print "管理モード画面です。\n"; }elsif($win + $lose >= $league_game){
ここに下記赤字部分を追加します。
下記の変更は、「管理画面」で変更項目の編集を行う部分です。
※2011/07/18 下記2行を追加しました。
if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); }
<input type=hidden name=kanripass value=$kanri_pass>
if($form{'kanri_mode'}){
print "管理モード画面です。\n";
# 管理モード機能追加
if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); }
$kanri_team_check = $team;
print <<"_EOF_";
<br><br><center><table border="1" cellpadding="5">
<tr align="center"><td></td><td>変更前</td><td>変更後</td></tr>
<tr><td>チーム名</td><td>(<b>$kanri_team_check</b>)</td>
<td><input type=text value=$team name=team_s size=20></td></tr>
<tr><td>監督</td><td>(<b>$saku</b>)</td>
<td><input type=text value=$saku name=saku_s size=20></td></tr>
<tr><td>アイコン</td><td>(<b>$icon</b>)</td>
<td><input type=text value=$icon name=icon_s size=20></td></tr>
<tr><td>パスワード</td><td>(<b>$pass</b>)</td>
<td><input type=text value=$pass name=pass_s size=20></td></tr>
<tr><td>ホームページURL</td><td>(<b>$home</b>)</td>
<td><input type=text value=$home name=url_s size=20></td></tr>
<tr><tdTD align="center" colspan="3">
<br><input type=submit name=henko value="チームデータ変更する?">
<br><br></TR>
</table></center>
<input type=hidden name=kanri_team_check value="$kanri_team_check">
<input type=hidden name=kanripass value=$kanri_pass>
_EOF_
# 管理機能追加 ここまで
}elsif($win + $lose >= $league_game){
更に「geki_login.cgi」の最後の2行
}#end delete 1;
の「1;」の前に下記赤字部分を挿入して下さい。
下記追加部分は、チームデータ変更を実行する部分です。
※2011/07/18 下記を追加しました。
if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); }
}#end delete
#------------< ここから >--------------------- (←この行は無くてもOK!)
#### チームデータ変更(管理用)
sub henko{
if($form{'kanripass'} ne $kanri_pass){ &error('パスワードが違います。'); } # 2011/07/18 追加
$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'};
$url_s = $form{'url_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>$url_s<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;
に編集して下さい。
注意事項
この改造は劇ぱわの最重要データである「user.dat」ファイルを編集します。
改造後は、必ずローカルテストを実施して下さい。
改造を失敗した場合、チームデータが喪失・破損する危険があります。
改造スクリプトの表示に当たり、
$_ = "$saku_s<p>$pass_s<p>$url_s<p>$team_s<p>$icon_s<p>$date<p> $ip<p>$teamdata<p>$pointdata<p>$bosstype<p>$charadata<p> $gamedata<p>$campflag<p>\n";
などの部分を複数行に改行して表示して有りますが、実際に改造する場合は、改行を入れずに1行として編集して下さい。
当サイトへのリンクを貼って下さい
「劇ぱわ」の下部著作権部分へのリンクを貼る方法
##### 著作権表示 sub chosaku{ print <<"_CHOSAKU_"; </center> <hr size="1"> <div align="right"> <a href="http://homepage2.nifty.com/osktaka/" target="_blank" title="気ままなまま"> <font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font> </a> </div> <div align="right"> <a href="http://ryoquest.sakura.ne.jp/" target="_blank" title="改造:「野良猫のCGI講座」Take it easy !"> <font size="2">改造:「野良猫のCGI講座」Take it easy !</font> </a> </div> <!--広告バナー挿入位置、ページ下部--> </body> </html> _CHOSAKU_ }#end chosaku
前後の内容
CGI/perl← | 劇ぱわ | →俺ペナ | |||
不具合対策← | 改造方法 | ||||
同一チームへの連敗制限← | 管理画面でチーム情報を変更 | →管理者コメント追加 |
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents
『野良猫のCGI講座』は、
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents のコンテンツとして、虎猫が公開しています。
「劇空間ぱわふるリーグ2 ver 3.00b(劇ぱわ)」は、
『きままなまま』で管理人にーやん様が作成・無料配布されているCGI/Perlによる野球ゲームです。
参考にされた方は、当サイトへリンクを貼って下さい♪
サイト名:Take it easy ! RYOQUEST presents
(サイト名:Take it easy !)
URL:http://ryoquest.sakura.ne.jp/
バナーURL:http://ryoquest.sakura.ne.jp/image/tie_8831an.gif
![]()
『旧:野良猫のCGI講座』
以前の『野良猫のCGI講座』をご覧になりたい方は、『旧:野良猫のCGI講座』からアクセスして下さい。
但し、更新は一切していません。