TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 管理者コメント追加
凡田クンが教えます! 【初心者コース】 虎猫が教えます♪
『5.「劇ぱわ2」改造方法』

管理者コメント追加
おことわり
ここに記載してある「セキュリティ対策」「不具合対策」「改造方法」を含む全てのコンテンツの無断転載を禁止します。

参考にされる方の自己責任でご覧下さい。
参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
参考にされる方は、下のリンクからクリック募金をして下さい♪
あなたの善意をクリックにのせて♪
アドバイス!
@コピペ(コピー&ペースト)
改造方法をコピペで写す事は出来るだけ止めましょう。
『500エラー』がよく出ます。
原因は、コピーした時に不要な物(と言うか、あってはならない物)までコピーしてしまう事が有るからです。
例えば、空白(全角)が含まれているとか、HTMLのスクリプトがコピーされちゃったとか^^
面倒だけど、出来るだけ「打つべし!」(間違えない様に♪)
コピペするなら、「1行づつコピペするべし!」(おかしな空白がないか、おかしな改行がないか、気を付けながら♪)
A意味を考えながら、改造法を参考にしましょう
単純にコピペして、改造終了!なんて事は、止めましょう!
改造されたスクリプトの意味を考えながら参考にすれば、参考資料が間違っていても自分で改造できます。
『ちゃんとコピーしたのに動かない!』と嘆く前に、何故、こうすると改造できるのかを考える様にしましょう。
スクリプトの意味や、組み立て方が分かってきます♪
そうすれば、
『投手4人制』も自分で改造出来ちゃいます♪
画面下にリンク先を追加する
画面右下の
で「気ままなまま」へリンクが貼ってあるものの下に同様の表示をする。

gekipawa.cgi
##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


に、下記の
赤字を追加します。
##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。

画面下にリンク先を追加する(その2)
もう少しだけ、手を加えてみましょう♪

##### 著作権表示
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="改造:"Take it easy !"RYOQUEST presents(虎猫 presents)"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。

見た目は変わりませんが、カーソルを合わせてみて下さい♪タイトルが出たでしょ♪さりげなく、お洒落になります。
(但し、少しだけ重くなります・・・^^;)


更に本家『気ままなまま』に敬意を表して、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>
<BR>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank" title="改造:"Take it easy !"RYOQUEST presents(虎猫 presents)"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。
このまま下に画像提供サイトや他の参考サイトを追加していきましょう♪
管理者コメント追加
「試合後の監督コメント」欄に管理者コメントを追加できるようにします。
試合を行ってコメントを残さなくても、管理者のみコメントを追加できるようになります。
新規参加者へのあいさつ、不正・暴言者への注意など、利用価値は高いのではないでしょうか。
管理者コメントは「管理モード」から、入力します。

gekipawa.cgi
□モード選択部分(79行目)
if($form{'kiroku'}){
require './geki_else.cgi';
$no = $form{'no'};
if($no eq 1) { &last_team; }
elsif($no eq 2) { &last_play; }
elsif($no eq 3) { &past_rank; }
elsif($no eq 4 || $no eq 5) { &each_reco; }
else { &last_kekka; }
exit;
}

if($form{'rule'}) { &rule; exit; }

&top;

exit;

##### デコード&ローカル変数へ受け渡し


上記部分に下記
赤字部分を追加する。

if($form{'kiroku'}){
require './geki_else.cgi';
$no = $form{'no'};
if($no eq 1) { &last_team; }
elsif($no eq 2) { &last_play; }
elsif($no eq 3) { &past_rank; }
elsif($no eq 4 || $no eq 5) { &each_reco; }
else { &last_kekka; }
exit;
}

if($form{'rule'}) { &rule; exit; }

if($form{'kanricom'}){ &kanricom; &kanri; exit; } # 管理者コメント

&top;

exit;

##### デコード&ローカル変数へ受け渡し

□コメント表示部分(317行目)
# コメント
open(CF,"$commentfile") || &error('指定されたファイルが開けません。');
seek(CF,0,0); @comments = <CF>; close(CF);

@com_pri = ();
$com_pri[0] = "<table border=1 width=\"$ysize\" cellpadding=5 cellspacing=0>\n";
$com_pri[1] = "<tr align=\"center\"><td>試合後の監督コメント</td></tr>\n";
$com_pri[2] = "<tr><td bgcolor=\"FFFFFF\">\n";

$i = 0;
foreach(@comments){
($no, $saku, $home, $date, $com, $kekka) = split /<>/;
$date = &date($date);
if($home){ $saku = "<a href=\"$home\" target=\"_blank\">$saku</a>"; }
if($no){
if($kekka){ $kekka = "【 $kekka 】"; }
$com_pri[$i+3] = "■ 劇ぱわニュース : 『 $com 』 $kekka ($date)\n";
}else{
$com_pri[$i+3] = "□ $saku : 『 $com 』 【 $kekka 】 ($date)\n";
}


if($i ne $#comments){
$com_pri[$i+3] = "$com_pri[$i+3]<hr width=\"70%\" size=1>\n";
}
$i++;
}


オレンジ部分を下記赤字部分の様に変更します。

# コメント
open(CF,"$commentfile") || &error('指定されたファイルが開けません。');
seek(CF,0,0); @comments = <CF>; close(CF);

@com_pri = ();
$com_pri[0] = "<table border=1 width=\"$ysize\" cellpadding=5 cellspacing=0>\n";
$com_pri[1] = "<tr align=\"center\"><td>試合後の監督コメント</td></tr>\n";
$com_pri[2] = "<tr><td bgcolor=\"000000\">\n";

$i = 0;
foreach(@comments){
($no, $saku, $home, $date, $com, $kekka) = split /<>/;
$date = &date($date);
if($home){ $saku = "<a href=\"$home\" target=\"_blank\">$saku</a>"; }
if($no eq 1){
if($kekka){ $kekka = "【 $kekka 】"; }
$com_pri[$i+3] = " ■ Cat's eye Report : 『 $com 』 $kekka ($date)</font>\n";(←</font>は要りません。訂正します。2005/07/15)
$com_pri[$i+3] = " ■ Cat's eye Report : 『 $com 』 $kekka ($date)\n";
}elsif($no eq 0){
$com_pri[$i+3] = " □ $saku : 『 $com 』 【 $kekka 】 ($date)</font>\n";(←</font>は要りません。訂正します。2005/07/15)
$com_pri[$i+3] = " □ $saku : 『 $com 』 【 $kekka 】 ($date)\n";
}elsif($no eq 9){
$com_pri[$i+3] = "<font color=\"FF0000\">★ 管理者 : 『 $com 』 ($date)</font>\n";
}


if($i ne $#comments){
$com_pri[$i+3] = "$com_pri[$i+3]<hr width=\"70%\" size=1>\n";
}
$i++;
}


□コメント入力部分・ファイルへの書き込み部分(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_

# コメント
open(CF,"$commentfile") || &error('指定されたファイルが開けません。');
seek(CF,0,0); @comments = <CF>; close(CF);

print "<form action=$cgifile method=$method>\n";
print "<table border=1 width=$ysize cellpadding=5 cellspacing=0>\n";
print "<tr align=center><td>試合後の監督コメント</td></tr>\n";

$i = 0;
foreach(@comments){
($no, $saku, $home, $date, $com, $kekka) = split(/<>/, $_);
$date = &date($date);

print "<tr><td bgcolor=\"FFFFFF\">\n";
if($no){
if($kekka){ $kekka = "【 $kekka 】"; }
print "<input type=checkbox name=del$i value=$i> 劇ぱわニュース : 『 $com 』 $kekka ($date)\n";
}else{
print "<input type=checkbox name=del$i value=$i> $saku : 『 $com 』 【 $kekka 】 ($date)\n";
}

print "</td></tr>\n";

$i++;
}

print "</table><br>\n";
print "<input type=submit name=comdel value=\"コメント削除\">\n";
print "</form><br><br>\n";

&chosaku;

}#end kanri

##### コメントの削除処理


オレンジ部分の変更と追加する部分を下記赤字部分の様に変更します。

##### 管理用画面
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_

$comsize = $comleng * 2;
print "<form action=$cgifile method=$method>\n";
print "管理者コメント:";
print "<input type=text name=k_com size=$comsize>\n";
print " <input type=submit name=kanricom value=\"登録\">\n";
print "</form><br><br>\n";

# コメント
open(CF,"$commentfile") || &error('指定されたファイルが開けません。');
seek(CF,0,0); @comments = <CF>; close(CF);

print "<form action=$cgifile method=$method>\n";
print "<table border=1 width=$ysize cellpadding=5 cellspacing=0>\n";
print "<tr align=center><td>試合後の監督コメント</td></tr>\n";

$i = 0;
foreach(@comments){
($no, $saku, $home, $date, $com, $kekka) = split(/<>/, $_);
$date = &date($date);

print "<tr><td bgcolor=\"FFFFFF\">\n";
iif($no eq 1){(←iが二つありました……^^; 訂正します。2005/11/06)
if($no eq 1){
if($kekka){ $kekka = "【 $kekka 】"; }
$com_pri[$i+3] = " ■ Cat's eye Report : 『 $com 』 $kekka ($date)</font>\n";(←</font>は要りません。訂正します。2005/07/15)
$com_pri[$i+3] = " ■ Cat's eye Report : 『 $com 』 $kekka ($date)\n";(← 訂正します。2005/11/06)
print "<input type=checkbox name=del$i value=$i> 劇ぱわニュース : 『 $com 』 $kekka ($date)\n";
}elsif($no eq 0){
$com_pri[$i+3] = " □ $saku : 『 $com 』 【 $kekka 】 ($date)</font>\n";(←</font>は要りません。訂正します。2005/07/15)
$com_pri[$i+3] = " □ $saku : 『 $com 』 【 $kekka 】 ($date)\n";(← 訂正します。2005/11/06)
print "<input type=checkbox name=del$i value=$i> $saku : 『 $com 』 【 $kekka 】 ($date)\n";
}elsif($no eq 9){
$com_pri[$i+3] = "<font color=\"FF0000\">★ 管理者 : 『 $com 』 ($date)</font>\n";(← 訂正します。2005/11/06)
print "<input type=checkbox name=del$i value=$i> ★ 管理者 : 『 $com 』 ($date)\n";
}

print "</td></tr>\n";

$i++;
}

print "</table><br>\n";
print "<input type=submit name=comdel value=\"コメント削除\">\n";
print "</form><br><br>\n";

&chosaku;

}#end kanri

# 管理者コメント記入処理
sub kanricom{

if(length($form{'k_com'}) < 1 || length($form{'k_com'}) > $comleng * 2){ &error('コメントの長さが正しくないよ。'); }
if(!$form{'k_com'}){ &error('コメントを入力してね。'); }

open(CF,"+<$commentfile") || &error('指定されたファイルが開けません。CF');
eval 'flock(CF,2);';

@comments = <CF>;
$kakiko = "9<>管理者<><>$times<>$form{'k_com'}<><>\n";

unshift(@comments, $kakiko);
splice(@comments, $com_max);

truncate (CF, 0);
seek(CF,0,0); print CF @comments;
close(CF);
eval 'flock(CF,8);';

$form{'$key'} = "kanri";
$form{'kanripass'} = $kanri_pass;

}#end kanricom


##### コメントの削除処理



※記述に誤りがありましたので修正しました。この色の部分を修正しました。(2005/07/15)
※記述に誤りがありましたので修正しました。この色の部分を修正しました。(2005/11/06)

参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
2005/07/13
2005/07/15
2005/11/06
TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 管理者コメント追加