|
試合後のコメント蘭に試合後以外にもコメントを登録できる様にする。
・コメント入力欄はコメント表示の上に設置する。
・チーム登録されている者以外は、登録できない様にする。(荒らし防止)
・連続してのコメント登録は禁止とする(荒らし防止)
・gekipawa.iniに「追加コメント」を使用するかの区分を付ける。
■gekipawa.ini
□「追加コメント」の使用区分を付ける。
$ouen_flg = '0'; # 「追加コメント機能」(0:使用する、1:使用しない)
上記一行を任意の場所に追加する。
■gekipawa.cgi
□モード選択部分(49〜97行)
# 登録処理
if($form{'record'}) { &record; }
if($form{'comment'}){ &comsyori; }
if($form{'delete'}) { require './geki_login.cgi'; &delete; }
if($form{'comdel'}) { &comdelete; }
if($form{'mode'} eq 'game_log') { &game_log; exit; }
if($form{'mode'} eq 'icon_table'){ &icon_table; exit; }
if($form{'sinki_make'}) { &sinki_make; exit; }
if($form{'make_end'}) { &make_end; exit; }
if($form{'kanri'}) { &kanri; exit; }
if($form{'login'}) { require './geki_login.cgi'; &login; exit; }
if($form{'camp_end'}) { require './geki_login.cgi'; &camp_rec; &login; exit; }
if($form{'delekaku'}) { require './geki_login.cgi'; &delekaku; exit; }
if($form{'playkaku'}) { require './geki_login.cgi'; &playkaku; exit; }
if($form{'campin'}) { require './geki_login.cgi'; &campin; exit; }
if($form{'playball'}) { require './geki_game.cgi'; &playlog; exit; }
if($form{'league_rank'}){
require './geki_else.cgi';
$no = $form{'no'};
if($no eq 1){ &play_rank; }
else { &team_rank; }
exit;
}
if($form{'point_rank'}) { require './geki_else.cgi'; &point_rank; 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; }
⊤
exit;
##### デコード&ローカル変数へ受け渡し
上記部分に赤字部分を追加する。
# 登録処理
if($form{'record'}) { &record; }
if($form{'comment'}){ &comsyori; }
if($form{'delete'}) { require './geki_login.cgi'; &delete; }
if($form{'comdel'}) { &comdelete; }
if($form{'mode'} eq 'game_log') { &game_log; exit; }
if($form{'mode'} eq 'icon_table'){ &icon_table; exit; }
if($form{'sinki_make'}) { &sinki_make; exit; }
if($form{'make_end'}) { &make_end; exit; }
if($form{'kanri'}) { &kanri; exit; }
if($form{'login'}) { require './geki_login.cgi'; &login; exit; }
if($form{'camp_end'}) { require './geki_login.cgi'; &camp_rec; &login; exit; }
if($form{'delekaku'}) { require './geki_login.cgi'; &delekaku; exit; }
if($form{'playkaku'}) { require './geki_login.cgi'; &playkaku; exit; }
if($form{'campin'}) { require './geki_login.cgi'; &campin; exit; }
if($form{'playball'}) { require './geki_game.cgi'; &playlog; exit; }
if($form{'league_rank'}){
require './geki_else.cgi';
$no = $form{'no'};
if($no eq 1){ &play_rank; }
else { &team_rank; }
exit;
}
if($form{'point_rank'}) { require './geki_else.cgi'; &point_rank; 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{'ouen'}) { require './geki_else.cgi'; &ouen_syori; } # 追加コメント機能
⊤
exit;
##### デコード&ローカル変数へ受け渡し
■gekipawa.cgi
□追加コメント入力画面作成(354〜358行)
&top1;
$c_home =~ s/http:\/\///g; # アドレスの処理
print <<"_EOF_";
上記部分に赤字部分を追加する。
&top1;
$c_home =~ s/http:\/\///g; # アドレスの処理
# 追加コメント機能 @ouen_pri
if($ouen_flg){ # gekipawa.iniに追加した$ouen_flg
@ouen_pri = ();
}else{
$comsize = $comleng * 2;
@ouen_pri = ();
$ouen_pri[0] = "<br><br><form action=$cgifile method=$method>\n";
$ouen_pri[1] = "<table border=1 width=80% cellspacing=0 cellpadding=5>\n";
$ouen_pri[2] = "<tr align=center><td>追加コメント($comleng文字まで)【モラルある使用をして下さい】</td></tr>\n";
$ouen_pri[3] = "<tr align=center><td><input type=text name=ouencom size=$comsize value=\"ゲーム参加者のみコメントが追加できます!\"></td></tr>\n";
$ouen_pri[4] = "<tr align=center><td>";
$ouen_pri[5] = "登録されている";
$ouen_pri[6] = " なまえ <input type=text name=ew_saku size=15 value=$c_saku>\n";
$ouen_pri[7] = " パスワード <input type=password name=ew_pass size=10 value=$c_pass>\n";
$ouen_pri[8] = " <input type=submit name=ouen value=\"コメント登録\"></td></tr>\n";
$ouen_pri[9] = "</table></form><br>\n";
}
# 追加コメント機能 @ouen_pri ここまで
print <<"_EOF_";
■gekipawa.cgi
□追加コメント入力画面を設定する。(418〜425行)
(※「追加コメント」入力画面を入れたい場所に設定します。print <<"_EOF_"; 〜 _EOF_ の間に入れて下さい。)
</table>
<br><br>
@com_pri
<br>
_EOF_
&footer;
上記部分に赤字部分を追加する。
</table>
<br><br>
@ouen_pri
@com_pri
<br>
_EOF_
&footer;
■geki_else.cgi
□追加コメント処理を設定します。(1,268〜1,270行:最後の部分)
(※gekipawa.cgiに設定すると毎回の処理が重くなりますので、geki_else.cgiに設定します。)
}#end league_end
1;
上記部分に赤字部分を追加する。
}#end league_end
# 追加コメント記入処理
sub ouen_syori{
if(length($form{'ouencom'}) < 1 || length($form{'ouencom'}) > $comleng * 2){ &error('コメントの長さが正しくないよ。'); }
if($form{'ouencom'} eq "ゲーム参加者のみコメントが追加できます!"){ &error('コメントを入力してね。'); }
$ouen_saku = $form{'ew_saku'};
$ouen_pass = $form{'ew_pass'};
$ouen_com = $form{'ouencom'};
$ouen_ew = 0;
open(US,"$leaguefold/$userfile") || &error('指定されたファイルが開けません。');
eval 'flock(US,1);';
@com_users = <US>;
close(US);
eval 'flock(US,8);';
foreach(@com_users) {
($com_saku, $com_pass, $com_home, $d, $d, $d, $d, $d, $d, $d, $d, $d, $d) = split /<p>/;
if($ouen_saku eq $com_saku && $ouen_pass eq $com_pass){
$ouen_ew = 5;
$ouen_home = $com_home;
last;
}
}
if(!$ouen_ew){ &error('ゲーム参加者以外コメント追加出来ないよ。');}
open(CF,"+<$commentfile") || &error('指定されたファイルが開けません。');
eval 'flock(CF,2);';
@comments = <CF>;
if((split(/<>/, $comments[0]))[1] eq $ouen_saku){ &error('連続で登録はできないよ。'); }
$kakiko = "$ouen_ew<>$ouen_saku<>$ouen_home<>$times<>$ouen_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);';
}#end ouen_syori
1;
■gekipawa.cgi
□コメント表示部分(331〜336行)
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($no){
if($no eq 1){
if($kekka){ $kekka = "【 $kekka 】"; }
$com_pri[$i+3] = "■ 劇ぱわニュース : 『 $com 』 $kekka ($date)\n";
}elsif($no eq 5){
$com_pri[$i+3] = "★ $saku : 『 $com 』 ($date)\n";
}else{
$com_pri[$i+3] = "□ $saku : 『 $com 』 【 $kekka 】 ($date)\n";
}
|